【问题标题】:Shell script make lines in one huge file into two seperate files in one go? [duplicate]Shell脚本一次将一个大文件中的行分成两个单独的文件? [复制]
【发布时间】:2021-12-19 08:01:06
【问题描述】:

目前,我的 shell 脚本将一个大文件中的行迭代两次: (我想做的就跟下面的shell脚本一样)

grep 'some_text' huge_file.txt > lines_contains_a.txt
grep -v 'some_text' huge_file.txt > lines_not_contains_a.txt

但它很慢。

如何做同样的事情只迭代一次?

谢谢!

【问题讨论】:

    标签: linux bash shell


    【解决方案1】:

    使用 GNU awk:

    awk '/some_text/  { print >> "lines_contains_a.txt" }
         !/some_text/ { print >> "lines_not_contains_a.txt" }' huge_file.txt
    

    【讨论】:

      【解决方案2】:

      使用 sed:

      sed -n '/some_text/  w lines_contains_a.txt
              /some_text/! w lines_not_contains_a.txt'  huge_file.txt
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-06-13
        • 1970-01-01
        • 1970-01-01
        • 2018-10-05
        • 2014-12-24
        • 1970-01-01
        • 2014-01-24
        • 1970-01-01
        相关资源
        最近更新 更多