为 .txt 文件中的每一行添加前缀和后缀

Ter*_*ice 22 sed awk text-processing

我正在尝试在 .txt 文件中的每一行中附加和预先添加文本。

我想预先准备: I am a

我想补充: 128... [}

到每一行。

a.txt里面:

fruit, like
bike, like
dino, like
Run Code Online (Sandbox Code Playgroud)

执行以下命令后:

$ cat a.txt|sed 'I am a ',' 128... [}'
Run Code Online (Sandbox Code Playgroud)

它不能按照我想要的方式工作。我真的希望它说以下内容:

I am a fruit, like 128... [}
I am a bike, like 128... [}
I am a dino, like 128... [}
Run Code Online (Sandbox Code Playgroud)

Rom*_*est 32

简单的sed方法:

sed 's/^/I am a /; s/$/ 128... [}/' file.txt
Run Code Online (Sandbox Code Playgroud)
  • ^- 代表字符串/行的开始
  • $- 代表字符串/行的结尾

输出:

I am a fruit, like 128... [}
I am a bike, like 128... [}
I am a dino, like 128... [}
Run Code Online (Sandbox Code Playgroud)

或者,Awk你可以这样做:

awk '{ print "I am a", $0, "128... [}" }' file.txt
Run Code Online (Sandbox Code Playgroud)


don*_*sti 9

sed 's/.*/PREFIX&SUFFIX/' infile
Run Code Online (Sandbox Code Playgroud)

会做,假设PREFIX并且SUFFIX不包含任何特殊字符。


\&/(反斜杠、与号和分隔符)在s替换的右手边是特殊的。这些字符的特殊含义可以通过对它们进行转义(在它们前面加一个反斜杠)来抑制,例如A//BC添加和附加XY\Z&&一个将运行:

sed 's/.*/A\/\/BC&XY\\Z\&\&/' infile
Run Code Online (Sandbox Code Playgroud)