Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash Sed命令替换编号+;带数字的字母+\n+;信_Bash_File_Sed - Fatal编程技术网

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