如何删除shell脚本中的子字符串

时间:2014-01-06 09:41:42

标签: shell awk grep

我有像

这样的字符串
something0^^^something1^^^something2^^^something3

我只想要字符串

something0^^^something1^^^something2

删除

^^^something3

我如何在shell脚本中获取它

3 个答案:

答案 0 :(得分:3)

使用纯BASH:

s='something0^^^something1^^^something2^^^something3'
echo "${s/^^^something3/}"
something0^^^something1^^^something2

或者你可以删除最后^^^之后的所有内容:

echo "${s%^^^*}"
something0^^^something1^^^something2

答案 1 :(得分:0)

perl -pe 's/\^\^\^something3//g' your_file

答案 2 :(得分:0)

awk版本

awk -F, '{gsub(/\^\^\^/,",");NF-=1}1' OFS="^^^"
something0^^^something1^^^something2

通过将FS更改为其他

来解决问题

另一个版本

awk '{sub(/\^\^\^[^\^]*$/,x)}1' file
something0^^^something1^^^something2