【问题标题】:How to append text in every line of a file except for the first line如何在文件的每一行中附加文本,第一行除外
【发布时间】:2013-09-05 14:42:50
【问题描述】:

我有一个文件说 abc.txt 有以下数据(真实数据有很多记录,比如大约 200 条)

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

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

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

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

【问题讨论】:

  • 您使用什么工具? bash 或 sed 对你有什么影响吗?

标签: file unix append


【解决方案1】:

怎么样:

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

【讨论】:

  • 不过一个小问题
  • |巴黎作为单独的最后一行出现。如何避免这种情况?
【解决方案2】:

这可能对你有用(GNU sed):

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-20
    • 1970-01-01
    • 1970-01-01
    • 2013-12-20
    • 1970-01-01
    • 2016-10-22
    • 2022-01-27
    • 1970-01-01
    相关资源
    最近更新 更多