リストファイルを元にしたloop処理
http://extstrg.asabiya.net/pukiwiki/index.php?%A5%EA%A5%B9%A5%C8%A5%D5%A5%A1%A5%A4%A5%EB%A4%F2%B8%B5%A4%CB%A4%B7%A4%BFloop%BD%E8%CD%FD前提条件 †
何らかの[ListFile]を作成し、頭から順に一行ずつ取得して処理を行うサンプルコード。
WC=`wc -l [ListFile] | awk '{print $1}'` i=1 while [ $i -le $WC ]; do NAME=`sed -n -e ${i}"p" $[ListFile]` [処理] i=$(($i+1)) done
処理の流れ †
1. wcコマンドにてListFileの行数を取得して変数WCに設定
2. 変数iに1(=1行目)を設定
3. while制御構文により変数iと変数WCを比較
4. do以降でループ処理を設定
5. NAME=にて変数NAMEに処理該当行の文字列を設定
サンプル †
count.sh †
リストを元に該当件数をカウントして出力するスクリプト
- count.sh
#!/bin/sh # ------------------------ # List count script # ------------------------ # Version : 1.0 # date : 2023/06/04 export LANG=C export PATH=/bin:/sbin:/usr/bin:/usr/sbin:$PATH ## ## Configuration ## ListFile=$1 InputFile=$2 OutputFile=$3 ## ## Check ## if [ -z $3 ];then echo "ERR : Parameters are missing." echo "./SCRIPT [LIST] [INPUT] [OUTPUT]" exit 1 fi ## ## Execute ## WC=`wc -l $ListFile | awk '{print $1}'` i=1 while [ $i -le $WC ]; do NAME=`sed -n -e ${i}"p" $ListFile` COUNT=`grep $NAME $InputFile | wc -l` echo $NAME","$COUNT >> $OutputFile i=$(($i+1)) done exit 0 # EOF
Last-modified: 2023-06-04 (日) 20:45:40 (119d)