有没有办法删除所有字符,直到达到特定字符的第一次出现该字符了。
123:abc
12:cba
1234:cccc
和输出将是:
abc
cba
cccc
有没有办法删除所有字符,直到达到特定字符的第一次出现该字符了。
123:abc
12:cba
1234:cccc
和输出将是:
abc
cba
cccc
你可以使用cut
:
$ cut -d":" -f2- myfile.txt
使用SED:
sed 's/^[^:]*://' file
abc
cba
cccc
或者用awk:
awk -F: '{print $2}' file
abc
cba
cccc
awk
echo "123:abc" | awk -F ":" '{print $2}'
-F
表示使用:
作为分隔符分割的字符串。 {print $2}
意味着打印第二子串。 如果数据是在一个变量,你可以使用参数扩展:
$ var=123:abc
$ echo ${var#*:}
abc
$
该#途径,消除最短模式*:
从字符串的前面(任何后跟一个冒号),因为你在你的要求说“删除所有的字符,直到达到一定的字符+该字符第一次出现”,而不是获得第二个领域,其中分隔符是冒号。