2017-01-12 162 views
1

我有一些文本文件(所有文件在每行123:abc都有這種方案),並希望使用這些文件製作兩個獨立的文件。一個包含所有行(但是uniq)的大文件,並且在標記「:」之後帶有這個文件。使管道縮短管道

這這裏工作:

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

,但我可以做到這一點與管短得多?

回答

3

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 
1

我建議:

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

試試這個:

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