删除字符串,最多某些字符的第一次出现(deleting string up to the first

2019-10-23 03:41发布

有没有办法删除所有字符,直到达到特定字符的第一次出现该字符了。

123:abc
12:cba
1234:cccc

和输出将是:

abc
cba
cccc

Answer 1:

你可以使用cut

$ cut -d":" -f2- myfile.txt 


Answer 2:

使用SED:

sed 's/^[^:]*://' file
abc
cba
cccc

或者用awk:

awk -F: '{print $2}' file
abc
cba
cccc


Answer 3:

使用awk

echo "123:abc" | awk -F ":" '{print $2}'
  • -F表示使用:作为分隔符分割的字符串。
  • {print $2}意味着打印第二子串。


Answer 4:

如果数据是在一个变量,你可以使用参数扩展:

$ var=123:abc
$ echo ${var#*:}
abc
$

该#途径,消除最短模式*:从字符串的前面(任何后跟一个冒号),因为你在你的要求说“删除所有的字符,直到达到一定的字符+该字符第一次出现”,而不是获得第二个领域,其中分隔符是冒号。



文章来源: deleting string up to the first occurrence of certain character