附加前几行的开头和结尾

时间:2012-09-07 12:28:55

标签: linux bash sed

什么sed命令允许我在每行的末尾添加一个字符串,在第一行的开头添加不同的字符串,在第五行的末尾添加不同的字符串?

到目前为止我已经

    sed 's/$/<br>/' $FILE1 >> $FILE1_GETS_APPENDED_TO_THIS_FILE

将html break语句附加到file1中每行的末尾。我需要在前5行附近添加一个头语句。因此,第一行的开头需要附加<h3>,并且第五行的末尾需要</h3>附加到它。

谢谢!

4 个答案:

答案 0 :(得分:2)

在sed命令之前添加一个数字,仅将其应用于该行。添加两个用逗号分隔的数字以指定行号范围。 $代表最后一行。有关详细信息,请参阅sed手册中的“地址”。

sed -e '1 s/^/<h3>/' -e '5 s/$/<\/h3>/' -e '6,$ s/$/<br>/'

答案 1 :(得分:2)

就这么简单:

sed 's/$/<br>/; 1 s/^/<h3>/; 5 s/$/<\/h3>/'

当您使用$来匹配行尾时,请使用^来匹配行的开头。

然后,对于您的每个命令(例如s),您可以指定应该应用的行号(或范围)。

答案 2 :(得分:1)

我喜欢awk这种东西:

awk 'NR==1{print "<h3>"};{print $0, "<br>"};NR==5{print "</h3>"}' file.htm

答案 3 :(得分:0)

查看&#34;地址&#34;在sed手册中。您可以指定应该应用命令的行号:

sed '5s/$/Appended after fifth line/'