Linuxシェル:ファイルからパイプで区切られた値を抽出する

Linuxシェル:ファイルからパイプで区切られた値を抽出する

ファイルには次の値があります。

line 1: 31915
line 2: Salchipapa|papa|salchicha|aceite|queso

papa、salchicha、oli、quesoの値を求める必要があります

これは、行2列2から値を取得する必要があることを意味します。

ベストアンサー1

これをすべて配列として読み、後でIFS使用するために保存できます。

OIFS=$IFS; IFS='|'; array=($(sed '2q;d' "$filename")); IFS=$OIFS

echo ${array[0]}
Salchipapa

echo ${array[1]}
papa

これは配列内の要素の数を知るので、任意の10個の値に制限されず、後で「null」をテストする必要はありません。

echo ${#array[@]}
5

だからあなたはただ…

for (( i=0; i<${#array[@]}; i++ )); do echo ${array[$i]}; done
Salchipapa
papa
salchicha
aceite
queso

おすすめ記事