我必須執行Shell代碼,它可以逐行讀取CSV文件,檢查某些列值中的每一行並根據條件製作另一個新的CSV文件。Shell代碼 - 通過循環讀取CSV文件並製作另一個文件
我已經開始了這樣的代碼:
FileName=$1
while read line
do
zcat FileName awk -F'\t' '$3 ~/.jar/ || $3 ~/.msi/ || $3 ~/.dll/ || $3 ~/.cab/ || $3 ~/.exe/ || $3 ~/.rar/ || $3 ~/.mar/ || $3 ~/.tgz/ || $3 ~/.tar/ || $3 ~/.gz/ || $3 ~/.upd/ || $3 ~/.bin/ || $3 ~/.zip/ || $3 ~/.pogo/ || $3 ~/.dcr/ || $3 ~/.qgi/ || $3 ~/.deb/ || $3 ~/.ipa/ || $3 ~/symantec/ || $3 ~/windowsupdate/ || $3 ~/kaspersky/ || $3 ~/adobe.com/ && $42 ~/7/ && $15 ~/androiddownloadmanager/ && $15 ~/.apk/ && $15 ~/.pak/ && $15 ~/.vpx/ {Str="SW Download: " $3;Str>> New.csv} '
echo "$line" >> new2.csv
done < FileName
注意:文件名是。廣州。 (1)我得到了錯誤:「意外令牌附近的語法錯誤`完成'」。
(2)我想檢查新的csv是否會完成幷包含行。
謝謝
如果丟失一個管後'用zcat Filename'和$文件名之前在同一行?另外,爲什麼在shell中循環呢?爲什麼不讓awk處理整個文件而不是每行都運行它? '文件名= $ 1; zcat $文件名| awk - ' –
你真的認爲'15美元'需要同時匹配這四種不同的正則表達式嗎?這就是你的代碼的含義。 – tripleee