Bash

bash shell腳本循環中的awk命令

  • September 29, 2021

我有一個bash腳本,它應該通過一系列文件文本文件。我已經編寫了一個for循環來自動為我完成這項工作,但是當腳本執行時我沒有得到任何輸出文件。

我嘗試了在網上找到的各種單行命令,但沒有運氣。我希望按“年”打破這些大文件。有什麼建議麼?

#!/usr/awk -f
       for i in *yyyymm.txt
       do
#       {FS = "," }
       awk -F "," 'BEGIN '$1 == 2002'END{ print $0 }' $i > "$i"-2002.dat
       gawk '$ 1==2002 { print $0 }' "$i" > "$i"-2002.dat
       awk '/2002/' "$i" > "$i"-2002.dat 

假設文件都是逗號分隔的,並且第一個欄位 ( $1) 包含年份,那麼您只需要:

awk -F, '{print > FILENAME "-" $1 ".dat"}' *yyyymm.txt

引用自:https://unix.stackexchange.com/questions/671002