2017-01-12 96 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