Unix 删除给定字符后的第一个字符

Unix 删除给定字符后的第一个字符,unix,sed,Unix,Sed,在本例中,字符为“^” 例如,采用以下格式,共3列 发件人: 我很确定这在sed中是可能的。你的意思是sed的/\^//g'?这将删除^和以下字符。为了匹配演示输入/输出,它应该是s/\^//g。要匹配描述,您需要s/\^./\^/g(即,您将其描述为删除以下字符,但显示为同时删除插入符号和以下字符)。这里是一个awk解决方案(作为另一个Unix工具替代方案提供,您已经有了sed解决方案) 给予 是的,这个很好用。是的,我的问题有点说错了。^不需要在替换中转义:s/\^./^/g很好。 1 cc

在本例中,字符为“
^

例如,采用以下格式,共3列

发件人:


我很确定这在sed中是可能的。

你的意思是
sed的/\^//g'
?这将删除
^
和以下字符。

为了匹配演示输入/输出,它应该是
s/\^//g
。要匹配描述,您需要
s/\^./\^/g
(即,您将其描述为删除以下字符,但显示为同时删除插入符号和以下字符)。

这里是一个
awk
解决方案(作为另一个Unix工具替代方案提供,您已经有了
sed
解决方案)

给予


是的,这个很好用。是的,我的问题有点说错了。
^
不需要在替换中转义:
s/\^./^/g
很好。
1 cccc cccc
2 cta^<t cta^<tcc
3 ccc cccc^*
4 ^]a^*c^*c ^]a^*c^*c 
1 cccc cccc
2 ctat ctatcc
3 ccc cccc
4 acc acc 
awk '/^/{gsub(/\^./,"", $0)};1' data.txt
1 cccc cccc
2 ctat ctatcc
3 ccc cccc
4 acc acc