除了第一行之外,如何在文件的每一行中附加文本

时间:2013-09-02 13:07:24

标签: file unix append

我有一个文件说abc.txt包含以下数据(真实数据有很多记录,比如200左右)

  

Sno | Name
  1 | Jack
  2 | Jill
  3 | June

现在如何附加文字以使我的文件看起来像这样,

  

Sno | Name | Place
  1 | Jack | Paris
  2 | Jill | Paris
  3 | June | Paris

我尝试全局替换,但第一行应该附加不同的文字。所以请帮助我们。

2 个答案:

答案 0 :(得分:4)

怎么样:

sed -e '2,$ s/$/|Paris/' < abc.txt

包括标题:

sed -e '1 s/$/|Place/' -e '2,$ s/$/|Paris/' < abc.txt

对于最后一行,您必须在文件中有一个额外的空白行。因此,删除除零个或多个空格之外的所有行:

sed -e '/^ *$/ d' -e '1 s/$/|Place/' -e '2,$ s/$/|Paris/' < abc.txt

答案 1 :(得分:0)

这可能适合你(GNU sed):

sed '1s/$/|Place/;/./!b;1!s/$/|Paris/' file

这会将|Place追加到第一行,忽略空行,所有其他行追加|Paris