次のようなファイルがあります。
work:week:day:england:
work1:week:day:sweden:
work2:week:day::
.....
リストをループするたびに、使用できる変数として各文字列を取得します。たとえば、自分が働いている場所を知りたい場合は、最初の列「work *」から4番目の場所の列を取得します。
私はこれを試しました:
for country in $( awk -F '[:]' '{print $1}' file.txt); do
if [[ "$country" == "england" ]];
then
echo "This user works in England!"
else
echo "You do not work in England!"
fi
done
各行の各ループの変数として、コロンで区切られた各文字列を取得したいと思います。
これにはbashだけを使用できます:(IFS
内部フィールドセパレーター)をに設定する:
と、フィールドが適切にキャッチされます:
while IFS=":" read -r a b c country
do
echo "$country"
done < "file"
これは次を返します:
イングランド スウェーデン
このようにし$a
て、最初のフィールド、$b
2番目のフィールド、$c
3番目のフィールド、および4番目のフィールドに使用できるようになります$country
。もちろん、番号と名前を要件に合わせて調整してください。
すべて一緒に:
while IFS=":" read a b c country
do
if [[ "$country" == "england" ]]; then
echo "this user works in England"
else
echo "You do not work in England"
fi
done < "file"
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加