我的文件有多个这样的列
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
有什么意见吗?
最佳答案
只需删除括号(用空格替换以保持位置完整)
$ 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
关于linux - sed 文本替换与文件分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53822914/