2016-10-19 4 views
0

私は、次のように(それはそれでテキストを持っている)変数からいくつかの特定の単語を印刷するには、echoコマンドを使用しようとしているを含む変数から特定の単語をエコートンの空白行。私はこの問題はechoコマンドであると思いますが、私は $変数は、形式のテキストが含まれすぎてよく分からない:はテキスト

word1line1|word2line1|word3line1 
word1line2|word2line2|word3line2 

予想される出力は次のとおりです。

word1line1 
word1line2 
. 
. 
etc 

私は$を使用している場合{first [2]}、word1の代わりにword2を結果として得たい

+0

IFSの割り当てをローカライズするためにサブシェルを使用しています?引用

Inian

+0

多くの行:word1 | word2 | word3 | word4など。 –

+0

と期待される出力は何ですか? – Inian

答えて

0

問題は、あなたが配列の代入で変数を引用していることです。この場合、単語分割効果を得るために引用符を付けないでください。

$ variable="word1line1|word2line1|word3line1 
word1line2|word2line2|word3line2" 

$ for word in $variable; do (IFS='|'; words=("$word"); echo "${words[0]}"); done 
# ............................................^.....^ 
word1line1|word2line1|word3line1 
word1line2|word2line2|word3line2 

非上場:

$ for word in $variable; do (IFS='|'; words=($word); echo "${words[0]}"); done 
# ............................................^....^ 
word1line1 
word1line2 

私はあなたの `$のvariable`の内容はどのようなものがあり