【问题标题】:Insert a header of one file into the top of another [duplicate]将一个文件的标题插入另一个文件的顶部[重复]
【发布时间】:2017-01-10 13:51:41
【问题描述】:

我将一些 csv 文件分成两半。但是这些文件中的每一个都有一个标题,所以现在文件的后半部分缺少标题。

如何将文件 A 的第一行插入文件 B 的顶部?

【问题讨论】:

    标签: bash


    【解决方案1】:

    使用命令替换来提取 file1 的第一行,然后使用 sed 就地替换 file2 中的第一行。

     sed -i "1s/^/$(head -n1 file1)\n/" file2
    

    【讨论】:

    • 谢谢。请问“”里面发生了什么?
    • 1s1 in the sed` 命令意味着,仅在第一行进行搜索和替换。 ^ 表示行首。 head -n1 file1 将获得 file1 的第一行。所以/^/$(head -n1 file1)/ 表示将file2 的第一行替换为file1 的第一行。
    【解决方案2】:

    您必须重写第二个文件。假设你有文件 first.csvsecond.csv 你可以这样做:

    head -n1 first.csv > second-new.csv
    cat second.csv >> second-new.csv
    

    您现在可以检查second-new.csv 以查看是否一切正常,然后将旧版本替换为:

    mv -i second-new.csv second.csv
    

    【讨论】:

    • 有没有办法一步到位?
    • 不能在文件开头插入数据。
    猜你喜欢
    • 2014-01-19
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    • 2014-05-25
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    相关资源
    最近更新 更多