假设我有一个目录,其内容如下:
$ ls
file1.csv.gz
file2.csv.gz
file3.csv.gz
file4.csv.gz
listOfFiles.txtlistOfFiles.txt包含一个文件列表,我希望通过zcat和管道将这些文件发送到awk来处理它们的内容。例如,listOfFiles.txt可能包含以下内容:
$ cat listOfFiles.txt
file2.csv.gz
file3.csv.gz在本例中,我希望zcat在file2.csv.gz和file3.csv.gz上操作,而不是在目录中的任何其他文件上操作。一种方法是(编辑:根据注释从xargs zcat {}中删除{} ):
cat listOfFiles.txt | xargs zcat | awk ...但是我想知道是否有一种更简洁的方法可以让zcat从listOfFiles.txt中读取文件名。它必须能够处理任意长的文件名列表,xargs可以很好地处理该列表,理想情况下,它只对listOfFiles.txt的整个内容调用zcat一次,而不是listOfFiles.txt中包含的每个文件调用一次。
https://stackoverflow.com/questions/51286970
复制相似问题