我试图解析50+在shell脚本文件中类似下面的单呼,如何获得过去的文件长度限制?
for i in {0..49} do _file_list="$_file_list $_srcdir01/${_date_a[$i]}.gz" done eval zcat "$_file_list" | awk '{sum += 1} END {print sum;}'
但是当我这样做,我得到的“文件名太长”错误与ZCAT。
我试图在一次调用中这样做的原因是据我所知,awk无法保留以前调用的信息。我必须仔细考虑整个列表(例如在该列表中查找唯一的单词)
我也不想合并文件,因为它们都是大文件。
是否有一个聪明的方法来解决这个问题?还是我需要拆分调用并写出中间结果?
如果您删除'eval',它会将整个事件作为* single * filename而不是多个。 – o11c
您可以用'awk'END {print NR}'替换'awk'{sum + = 1} END {print sum;}''或者甚至更好的替换'wc -l'。 –
我的歉意。我确实有解决方案工作..但我喜欢循环解决方案中的zcat,因为它更干净。我没有看到任何最终结果的差异,但是在'$ list_of_files“ do zcat文件 done'和'zcat long_long_list_of files'中的文件之间是否存在背景行为差异? – dorachan2010