我正在尝试在许多gzip压缩的csv文件中搜索某个字符串,该字符串位于第一行,我的想法是通过组合find,zcat和head来获取每个文件的第一行。但是我不能让他们一起工作。
$find . -name "*.gz" -print | xargs zcat -f | head -1
20051114083300,1070074.00,0.00000000
xargs: zcat: terminated by signal 13
example file:
$zcat 113.gz | head
20050629171845,1069335.50,-1.00000000
20050629171930,1069315.00,-1.00000000
20050629172015,1069382.50,-1.00000000
.. and 2 milion rows like these ...
尽管我通过编写bash脚本,遍历文件并写入临时文件解决了问题,但还是很高兴知道我做错了什么,如何做以及是否还有其他解决方法。
最佳答案
您应该发现这将起作用:
find . -name "*.gz" | while read -r file; do zcat -f "$file" | head -n 1; done