使用文件分隔符替换sed文本

时间:2018-12-17 21:00:16

标签: linux sed

我的文件具有多个类似的列

A   B   C (jan)   D   E   F (feb)   G (mar)   H

(即A和B,B和C,(jan)和D之间有制表符,但C和(jan)之间有空格。我只想用下划线替换那些空格。

因此,输出将类似于

A   B   C_(jan)   D   E   F_(feb)   G_(mar)   H

有何评论?

1 个答案:

答案 0 :(得分:0)

仅删除括号(替换空格以保持位置不变)

$ sed 's/[()]/ /g' file
A       B       C  jan  D       E       F  feb  G  mar  H

也删除内容

$ sed -E 's/\([^)]+\)//g' file
A       B       C       D       E       F       G       H

不清楚您的要求。

仍然不清楚您想要什么,您说要删除括号,但示例显示了它们。

还有两个变体

$ sed -E 's/ (\([^)]+\))/_\1/g' file
A       B       C_(jan) D       E       F_(feb) G_(mar) H

$ sed -E 's/ \(([^)]+)\)/_\1/g' file
A       B       C_jan   D       E       F_feb   G_mar   H