有没有办法删除所有字符,直到第一次出现某个字符和那个字符。
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 $
#意味着从字符串的前面删除最短的*:
任何后面跟一个冒号)模式,正如你在要求中所说的:“删除所有字符,直到第一次出现某个字符+该字符”,而不是获取分隔符是冒号的第二个字段。