Linux

Linux Shell:從文件中提取由管道分隔的值

  • June 17, 2019

我在文件中有以下值:

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

我需要得到土豆、香腸、油、奶酪的值

這意味著我必須從第 2 行第 2 列獲取值。

您可以通過更改將它們全部讀入一個數組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

引用自:https://unix.stackexchange.com/questions/523854