前提条件

何らかの[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

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-06-04 (日) 20:45:40 (270d)