【问题标题】:Make bashscript shorter with pipes使用管道使 bash 脚本更短
【发布时间】:2017-01-12 09:29:04
【问题描述】:

我有一些文本文件(所有文件在每一行都有这个方案123:abc)并且想用这些文件制作两个单独的文件。一个包含所有行(但 uniq)的大文件,其中包含标记“:”之后的字符串。

这里可行:

cat *.txt >> bigtextfile.txt 
sort -u bigtextfile.txt -o bigtextfile.txt 
cat bigtextfile.txt | cut -d: -f2 >> bigtextfile-filtered.txt

但是我可以用管道做这个更短吗?

【问题讨论】:

    标签: linux bash file pipe uniq


    【解决方案1】:

    sort 接受多个文件输入,因此您可以一次生成bigtextfile.txt

    sort -u *.txt -o bigtextfile.txt
    

    cut也接受文件输入参数,不需要cat

    cut -d: -f2 bigtextfile.txt >> bigtextfile-filtered.txt
    

    如果您本身不需要bigtextfile.txt,而只是将其用作生成bigtextfile-filtered.txt 的中间体,您可以在一行中完成:

    sort -u *.txt | cut -d: -f2 >> bigtextfile-filtered.txt
    

    【讨论】:

      【解决方案2】:

      我建议:

      sort -u *.txt | cut -d: -f2 >> bigtextfile-filtered.txt
      

      【讨论】:

        【解决方案3】:

        试试这个:

        cat *.txt | sort -u | cut -d: -f2 >> bigtextfile-filtered.txt
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-04-10
          • 1970-01-01
          • 2023-01-25
          • 2011-05-24
          • 1970-01-01
          • 1970-01-01
          • 2020-10-04
          • 2013-06-20
          相关资源
          最近更新 更多