シェルスクリプトマガジン

シェルスクリプトの書き方入門(Vol.69記載)

筆者:大津 真

本連載ではシェルスクリプトの書き方をやさしく紹介します。対象とするシェルは、多くのLinuxディストリビューションが標準シェルとして採用する「Bash」です。第5回は、複数の文字列を柔軟なパターンで指定できる正規表現の基礎について解説します。

シェルスクリプトマガジン Vol.69は以下のリンク先でご購入できます。

図2 シェルスクリプト「pref1.sh」の内容

#!/bin/bash

if [[ $# -ne 1 ]]; then
    echo "都道府県名を一つ指定してください"
    exit 1
fi

file=meibo.txt
if grep ":${1}$" $file; then
    count=$(grep -c ":${1}$" $file)
    echo "-- ${1}は${count}件ありました --"
else
    echo "-- ${1}は見つかりませんでした --"
fi

図3 シェルスクリプト「whileRead1.sh」の内容

#!/bin/bash

while read line
do
    echo $line
done < meibo.txt

図4 シェルスクリプト「whileRead2.sh」の内容

#!/bin/bash

cat meibo.txt | while read line
do
    echo $line
done

図5 シェルスクリプト「tokyo.sh」の内容

#!/bin/bash

count=0
grep ":東京$" meibo.txt | while read line
do
    echo "$((++count)):${line}"
done

図6 シェルスクリプト「addpref.sh」の内容

#!/bin/bash

while read line
do
    if echo $line | grep -q ":東京$"; then
        echo $line | sed "s/:東京$/:東京都/"
    elif echo $line | grep -q -e ":大阪$" -e ":京都$"; then
        echo $line | sed "s/:\(..\)$/:\1府/"
    elif echo $line | grep -q ":北海道"; then
        echo $line
    else
        echo $line | sed "s/:\(..*\)$/:\1県/"
    fi
done < meibo.txt