数行を出力するコマンドがあり、2行目をbash変数に入れたいと思います。
のように、bash変数echo "AAA\nBBB"
を入れるbashコマンドが必要です。BBB
とsed
:
var=$(echo -e "AAA\nBBB" | sed -n '2p')
とawk
:
var=$(echo -e "AAA\nBBB" | awk 'NR==2')
次に、変数をエコーします。
echo "$var"
2回電話read
する:
echo -e "AAA\nBBB" | { read line1 ; read line2 ; echo "$line2" ; }
必要であることに注意してください{}
。両方のコマンドが同じ入力ストリームを取得することを確認してください。また、変数はの外部からアクセスできない{}
ため、これは機能しません。
echo -e "AAA\nBBB" | { read line1 ; read line2 ; } ; echo "$line2"
あなたが使用することができますsed
:
SecondLine=$(Your_command |sed -n 2p)
例えば:
echo -e "AAA\nBBBB" | sed -n 2p
印刷したい行に応じて番号を変更します。
これを行うには、出力をヘッド/テールに配管します-var=$(cmd | tail -n +2 | head -n 1)
サブシェルを回避するには、パラメーター展開付きの配列を使用します。
str="AAA\nBBB"
arr=(${str//\\n/ })
var="${arr[1]}"
echo -e "$str"
このような:
var=$(echo -e 'AAA\nBBB' | sed -n 2p)
echo $var
BBB
bashスクリプトの場合:Variable =echo "AAA\nBBB" | awk "NR==2"