キー、値を読み、値を抽出するには、以下のファイルを繰り返すスクリプトが必要です。 foo_key1,foo.com,/tmp/worker${Build_Number} は、キーと値を別の変数に割り当てます (例: A="foo_key1",B="foo.com",C="/tmp/worker${ Build_シリアル番号}")。
cat abc.txt
foo_key1=foo.com|/tmp/worker${Build_Number}
foo_key2=goo.com|/tmp/manager${Build_Number}
以下のコードを試しましたが、運がありません。
while IFS== read -r key val ; do
val=${val%\"}; val=${val#\"}; key=${key#export };
A="$(cut -d'_' -f1 <<<"$key")"
B="$(cut -d'_' -f1 <<<"$val")"
C="$(cut -d'_' -f2 <<<"$val")"
echo $A
echo $B
echo $C
done < abc.txt
予想出力:
foo_key1
foo.com
/tmp/worker${Build_Number}
ベストアンサー1
awkを使用して3つの列を分割=
または|
印刷し、次を使用してread
列を変数に割り当てます。
awk -F '[=|]' '{print $1, $2, $3}' abc.txt | while read A B C; do
echo $A
echo $B
echo $C
done
中かっこの前に正規表現を追加してデータをフィルタリングすることもできます。たとえば、'/\S+/ {print $1, $2, $3}'
正規表現を使用して空白以外の文字を1つ以上一致させて空白行をスキップします。