我試圖解析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