如何使用sed将多行附加到文件?

时间:2015-09-26 23:08:01

标签: sed

是的,我搜索了网站,我认为我没有看到任何具体的问题来解决我无法克服的非常简单的问题。

我参加了Linux课程,我被问到这个问题:

  

使用sed命令和脚本文件将这些行添加到CD_list文件的末尾:

hard rock:1008:70
misc:1009:22

我一遍又一遍地试过,并阅读了这一章。我无法解决这个问题。

创建了文件CD_list,我需要使用脚本文件将上面两行附加到它上面。是的,难倒了。

2 个答案:

答案 0 :(得分:2)

一个可能的答案: <击> sed -i 's/^$/hard rock:1008:70\nmisc:1009:22/' CD_list

编辑:试试这个 sed -i '$ a\hard rock:1008:70\nmisc:1009:22' CD_list

我认为这是您之后的 a 命令。

这是一个很棒的资源: http://www.grymoire.com/Unix/Sed.html

答案 1 :(得分:1)

将以下内容放入script.sed

$a \
hard rock:1008:70\
misc:1009:22

然后运行sed -f script.sed CD_list。这将输出CD_list和附加行到标准输出。如果要修改文件,请使用sed -i -f script.sed CD_list

以下是它的工作原理:我们使用$来匹配文件的最后一行。然后我们运行a(append)命令,该命令在当前周期结束时输出后面的文本。通常换行会终止a命令,因此我们使用\(反斜杠)来转义换行符并按原样输出。

(摘自https://www.gnu.org/software/sed/manual/sed.html#sed-Programs。)