**前提条件 [#b059e763]
何らかの[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

**処理の流れ [#gf8f7634]
1. wcコマンドにてListFileの行数を取得して変数WCに設定~
2. 変数iに1(=1行目)を設定~
3. while制御構文により変数iと変数WCを比較~
4. do以降でループ処理を設定~
5. NAME=にて変数NAMEに処理該当行の文字列を設定~


*サンプル [#p91c6c75]
**count.sh [#q1c8baa9]
リストを元に該当件数をカウントして出力するスクリプト

-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"
  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

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS