Bash Sed命令替换编号+;带数字的字母+\n+;信
我有一个(我认为是个棘手的)Bash Sed命令替换编号+;带数字的字母+\n+;信,bash,file,sed,Bash,File,Sed,我有一个(我认为是个棘手的)sed问题 我有一个包含纯文本和数字的文件 文件中的每个实例,如果有一个数字[0-9],后面是字母C、T或D,我想用相同的数字,后面是\n字符和相同的字母来替换它 例如 我想换成 551235\nD 4218789\nT 435151\nC 我面临的问题是如何用相同的字母/数字替换每个字母/数字组合。很容易用我喜欢的任何东西替换[0-9],后跟C、T或D,问题是在数字和字母之间插入一个\n 任何帮助都将不胜感激。这可能适合您(GNU sed): 使用反向引用。这可
sed
问题
我有一个包含纯文本和数字的文件
文件中的每个实例,如果有一个数字[0-9]
,后面是字母C
、T
或D
,我想用相同的数字,后面是\n
字符和相同的字母来替换它
例如
我想换成
551235\nD 4218789\nT 435151\nC
我面临的问题是如何用相同的字母/数字替换每个字母/数字组合。很容易用我喜欢的任何东西替换[0-9]
,后跟C
、T
或D
,问题是在数字和字母之间插入一个\n
任何帮助都将不胜感激。这可能适合您(GNU sed):
使用反向引用。这可能适用于您(GNU-sed):
使用反向引用。在
sed
中,可以通过用\
转义换行来替换换行符:
此外,通过多次使用-e
,可以通过参数轻松添加换行符:
上述任一项都可以与反向引用替换(\1
、\2
等)结合使用,以在所需字符之间分割行
$sed的/\([0-9]\)\([DTC]\)/\1\
>\2/g'
或
$sed-e的/\([0-9]\)\([DTC]\)/\1\'-e'\2/g'
在sed
中,可以通过用\
转义换行来替换换行符:
此外,通过多次使用-e
,可以通过参数轻松添加换行符:
上述任一项都可以与反向引用替换(\1
、\2
等)结合使用,以在所需字符之间分割行
$sed的/\([0-9]\)\([DTC]\)/\1\
>\2/g'
或
$sed-e的/\([0-9]\)\([DTC]\)/\1\'-e'\2/g'
分享你的研究成果对每个人都有帮助。告诉我们您尝试了什么,以及为什么它不能满足您的需求。这表明你花了时间来帮助自己,它使我们避免重复显而易见的答案,最重要的是,它帮助你得到一个更具体和相关的答案!还可以看到类似这样的东西?分享你的研究对每个人都有帮助。告诉我们您尝试了什么,以及为什么它不能满足您的需求。这表明你花了时间来帮助自己,它使我们避免重复显而易见的答案,最重要的是,它帮助你得到一个更具体和相关的答案!还可以看到类似于?的内容,值得一提的是-i
和-i.bak
。除此之外,看起来不错。@potong就快到了:D它正在工作,将我需要的输出输出到命令行输出,但是当我尝试将输出重定向到这样的文件时:sed's/([0-9])([DTC])/\1\n\2/g'file>newFile它不工作或给出任何错误消息。值得一提的是-I
和-I.bak
。除此之外,看起来还不错。@potong:D它正在工作,将我需要的输出输出到命令行输出,但当我尝试将输出重定向到如下文件:sed's/([0-9])([DTC])/\1\n\2/g'file>newFile时,它不工作或给出任何错误消息
551235\nD 4218789\nT 435151\nC
sed 's/\([0-9]\)\([DTC]\)/\1\n\2/g' file