bash shell 脚本循环内的 awk 命令

bash shell 脚本循环内的 awk 命令

我有一个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

假设文件全部以逗号分隔,并且第一个字段 ( $1) 包含年份,那么您需要的是:

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

相关内容