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

问题描述:

在这种情况下,字符为“^”。删除给定字符后的第一个字符

例如,采用以下格式的3列。

来源:

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 

我敢肯定这是可能的SED。

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

+1

是的,这完美的作品。是的,我有点误解了我的问题。 – mmot

+0

'^'不需要在替换中被转义:'s /\^./^/ g'很好。 –

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

这里是一个awk溶液(只提供作为其它的类Unix工具可供选择,你已经有sed解决方案)

awk '/^/{gsub(/\^./,"", $0)};1' data.txt 

1 cccc cccc 
2 ctat ctatcc 
3 ccc cccc 
4 acc acc