1

假设我有一个目录,其内容如下:

$ ls
file1.csv.gz
file2.csv.gz
file3.csv.gz
file4.csv.gz
listOfFiles.txt

listOfFiles.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处理得很好,理想情况下,它zcat只会为 . 的全部内容调用一次listOfFiles.txt,而不是listOfFiles.txt.

4

1 回答 1

1

你可以避免cat

xargs zcat < listOfFiles.txt | awk ...
于 2018-07-11T13:47:23.007 回答