出力から特定の行を取得して変数に保存するにはどうすればよいですか?

出力から特定の行を取得して変数に保存するにはどうすればよいですか?

このコマンドを実行すると

user@ubuntu:~$ ./2input1output Jojo Ar Dublin

それは私に次のような結果を与えます

Your First Name: Jojo 
Your Last Name : Ar 
Your Hometown : Dublin
Thank you, Jojo Ar From Dublin,
Welcome to Stackoverflow

これで、この出力の4行目と5行目を表示してから変数に保存する必要があります。頑張りました

user@ubuntu:~$ (sed -n 4,5p ./2input1output)

しかし、それは私に次のような結果を与えます

echo"Thank you, $1 $2 From $3,
Welcome to stackoverflow"

ベストアンサー1

あなたのコマンドは実際に期待どおりに機能します。 sedに、「2input1output」ファイルから4行と5行を返すように依頼しています。ご覧のとおり、位置パラメータ(つまり$ 1、$ 2、$ 3)はスクリプトに含まれているため返されます。

実際にやるべきことは、まずスクリプトを実行して目的の出力(STDOUT)を取得し、それをストリームエディタ(sed)にパイプすることです。したがって、必要なものをクリックして変数に保存します。

$ MESSAGE=$(./2input1output Jojo Ar Dublin | sed -n 4,5p)

変数にアクセスするときに改行を維持する必要がある場合は、まず二重引用符で囲む必要があることに注意してください。

おすすめ記事