2012年10月20日土曜日

複数ファイルを処理するシェルスクリプトメモ

複数ファイルを処理するときのシェルスクリプトメモ。

カレントディレクトリのファイルを処理。

#!/bin/sh

files=(`ls -1`)

for file in ${files[@]}
do
# ここに処理を書く。

done
exit 0

これと awk を組み合わせる時のメモ

#!/bin/sh

LINE=2

files=(`ls -1`)

for file in ${files[@]}
do
    cat $file | awk --assign awk_var="$LINE" '
    {
        # 条件を書かないと必ず実行
    }
    NR == 1 {
        # 1 行目の場合の処理
    }
    NR == awk_var {
        # 2 行目の場合の処理
        # シェルの変数を assign オプションで awk に渡す
    }
    {
        # next を呼ぶとパターンマッチングせずに次の行を読み込む
        next
    }
    END {
        # テキストの最後に実行される処理
    }
    '
done
exit 0

■ 参考
http://shellscript.sunone.me/awk.html

● 複数, ファイル, 処理, シェルスクリプト, file, for, ファイルリスト

0 件のコメント: