以下のようなawkスクリプトを書くことができます。このスクリプトは、指定されたディレクトリ内のすべての.csvファイルを読み込み、2列目、3列目、および4列目の合計を出力します。最後に、すべてのファイルの2列目、3列目、および4列目の合計を計算して出力します。
#!/usr/bin/awk -f BEGIN { FS = "," sum2 = sum3 = sum4 = total2 = total3 = total4 = 0 } # ファイルを読み込む前にファイル名を出力する FNR == 1 {print "File: " FILENAME} # 2列目、3列目、および4列目の合計を計算する { sum2 += $2 sum3 += $3 sum4 += $4 } # 各ファイルの2列目、3列目、および4列目の合計を出力する ENDFILE { print " Column 2 sum: " sum2 print " Column 3 sum: " sum3 print " Column 4 sum: " sum4 # 各ファイルの2列目、3列目、および4列目の合計を合計する total2 += sum2 total3 += sum3 total4 += sum4 # 次のファイルに進む前に変数をリセットする sum2 = sum3 = sum4 = 0 } # 全てのファイルの2列目、3列目、および4列目の合計を出力する END { print "Total column 2 sum: " total2 print "Total column 3 sum: " total3 print "Total column 4 sum: " total4 }
このスクリプトをファイルに保存し、実行権限を与えます。
chmod +x script.awk
次に、以下のようにコマンドを実行します。
find /path/to/directory -name "*.csv" -exec awk -f /path/to/script.awk {} \;
このコマンドでは、指定されたディレクトリ内のすべての.csvファイルを検索し、各ファイルに対してawkスクリプトを実行します。{}
は、ファイル名に置き換えられます。すべてのファイルの2列目、3列目、および4列目の合計が計算され、出力されます。
ベテラン社員「あとはこの大量のデータを抜き出して...」
— しまじゃき (@obknt) April 20, 2023
ぼく「そういうの大得意です!grepしてawkですかね〜」
ベテラン「そうね。awk便利だよね〜〜」
非情報系のベテラン同僚と分かち合った