sed:如何在每行之前和之后插入?

时间:2015-10-08 13:52:00

标签: regex sed posix

我正在尝试弄清楚如何在OS X上使用sed在和之前文本文件中的每一行插入文本,但有些东西是我的做法显然是错误的。

这就是我所拥有的:

sed 's/\(^\).\($\)/A \1\2 Z/g' input

这就是我想要的:

输入

bbb

ccc
ddd

输出:

A bbb Z

A ccc Z
A ddd Z

编辑:此外,请勿匹配空白行(或仅包含空格的行)。

2 个答案:

答案 0 :(得分:2)

您可以使用:

sed 's/.*/A & Z/' file
A bbb Z
A ccc Z
A ddd Z

&是正则表达式中完全匹配的反向引用。

或者使用awk:

awk '{print "A", $0, "Z"}' file

答案 1 :(得分:1)

您可以使用:

sed 's/.*/A \0 Z/' input
  • 。* 将匹配整行
  • \ 0 将超过第一个表达式
  • 中的全部内容