【问题标题】:Awk - Append the output file and rename the input and output fileawk - 附加输出文件并重命名输入和输出文件
【发布时间】:2023-03-31 18:36:01
【问题描述】:

我希望继续使用文件 3 中以 99 开头的行来更新 File4。我不希望 awk 每次都创建一个新的 File4。 awk 中是否有办法一直附加 File4?

我还希望在处理文件后将 file3 重命名为 file3.orig,并将 file4 重命名为 file3.txt(输入文件的原始名称)。所以 File4 处理后会变成 File3,File3 会变成 File3.orig。

感谢任何帮助。 以下是我正在使用的脚本。

脚本

awk -F '\t', '/^99/' File3.txt > File4.txt

【问题讨论】:

    标签: awk append match


    【解决方案1】:

    使用>> 附加到现有文件:

    #                      v-- here
    awk '/^99/' File3.txt >> File4.txt
    

    如果文件不存在则创建该文件,如果存在则追加。文件洗牌最好在之后完成:

    mv File3.txt File3.orig
    mv File4.txt File3.txt
    

    【讨论】:

    • 非常感谢。它解决了我的问题。我有一个问题。如果 file4 附加了相同的数据集,则应将其覆盖。目前它正在添加新行而不是替换。可以通过awk吗?
    • @HighTech 我们不知道你在说什么。您想要追加到文件或覆盖文件。说“如果我用相同的数据附加它,那么它应该被覆盖”不会解析。使用示例输入和预期输出提出一个新问题。
    • 谢谢埃德。会做的:)
    【解决方案2】:

    sed 适合此任务:

    sed -i.orig -n '/^99/p' File3.txt
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-17
      • 1970-01-01
      相关资源
      最近更新 更多