我有一个(我认为是一个棘手的)sed
问题。
我有一个包含纯文本和数字的文件。
文件中的每个实例,其中有一个数字[0-9]
后跟一个C
,T
或D
的字母,我想要替换它使用相同的数字后跟一个\n
字符和相同的字母。
E.g。
551235D 4218789T 435151C
我想用
替换 551235\nD 4218789\nT 435151\nC
我面临的问题是如何用相同的字母/数字替换每个字母/数字组合。使用我喜欢的内容轻松替换[0-9]
后跟C
,T
或D
,问题是在数字和字母之间插入\n
。 ..
非常感谢任何帮助。
答案 0 :(得分:2)
这可能适合你(GNU sed):
sed 's/\([0-9]\)\([DTC]\)/\1\n\2/g' file
使用反向引用。
答案 1 :(得分:0)
在sed
中,换行符可以通过\
转义来替代:
此外,通过多次使用-e
:
上述任何一项都可以与反向引用替换(\1
,\2
等)结合使用,以分割所需字符之间的行。
$ sed 's/\([0-9]\)\([DTC]\)/\1\
> \2/g'
或
$ sed -e's/\([0-9]\)\([DTC]\)/\1\' -e'\2/g'