我有一个字符串,格式如下:
something0^^^something1^^^something2^^^something3
我只想要字符串
something0^^^something1^^^something2
通过移除
^^^something3
如何在shell脚本中获取它?
使用纯BASH:
s='something0^^^something1^^^something2^^^something3'
echo "${s/^^^something3/}"
something0^^^something1^^^something2
或者您可以删除最后一个^^^
之后的所有内容:
echo "${s%^^^*}"
something0^^^something1^^^something2
awk
版本awk -F, '{gsub(/\^\^\^/,",");NF-=1}1' OFS="^^^"
something0^^^something1^^^something2
通过将FS
更改为其他内容进行修复
awk '{sub(/\^\^\^[^\^]*$/,x)}1' file
something0^^^something1^^^something2
something0^^^something1^^^something2
。 - anubhavaawk 'BEGIN {FS="\\^\\^\\^"; OFS="^^^"} {NF-=1}1' file
- anubhavaBEGIN
块才能让FS
接受\\
。 - JotneFS
和 OFS
是分开的,FS=OFS=...
不起作用。使用 sub function
就可以了。 - anubhavaperl -pe 's/\^\^\^something3//g' your_file
bash
可以做到呢 :) +1 - Jotne