【发布时间】:2018-08-20 11:17:54
【问题描述】:
我有一个这样的字符串:
#
pap
它基本上转换为\t#\n\tpap,我想将其替换为:
#
pap
python
翻译成\t#\n\tpap\n\tpython。
用sed 尝试了很多方法,但它不起作用可能是因为sed 以不同的方式使用新行。我试过了:
sed -i "s/\t#\n\tpap/\t#\tpython\n\tpap/" /etc/freeradius/sites-available/default
...以及许多其他没有结果的方法。知道如何在这种情况下进行替换吗?
【问题讨论】:
-
sed 是用于简单替换单行的出色工具。它不适用于涉及跨多行匹配 RE 的任何问题。 1970 年代中期,当 awk 被发明时,sed 语言结构就已经过时了。
-
把
/^\t#/N;贴在你的前面,它会起作用的。