cutステートメントでスペース区切り記号を持つ単語文字列を生成する

cutステートメントでスペース区切り記号を持つ単語文字列を生成する

私は初めてバッシュに触れました。次のコマンドを実行するとき:

grep "type" /root/myFile | cut-d'=' -f2

次のメッセージが表示されます。

102
304
503
442

変数の内容が次のように宣言するのと同じように、最初のコマンドの内容を変数に保存したいと思います。

myVariable="102 304 503 442"

私は何をすべきかわかりません。myVariable空の文字列で初期化し、コマンドラインの内容を1行ずつ繰り返してからスペースを入れてmyVariableに追加しますか、それともbashを使用してこれを行うより簡単な方法はありますか?

ベストアンサー1

bashコマンド置換とパラメータ拡張を使用してこれを直接実行できます。

まず、コマンド置換を使用してコマンドの出力を変数に入れてから、パラメータ$()拡張を使用してすべての改行を空白に置き換えます${variable//$'\n'/ }

$ myVariable=$(grep "type" /root/myFile | cut-d'=' -f2) 
$ myVariable=${myVariable//$'\n'/ }
$ echo $myVariable
102 304 503 442

しかし、再利用性と清潔さのために配列を使用する方が良いです。

myArray=( $(grep "type" /root/myFile | cut-d'=' -f2) )

一般的な方法で配列要素を繰り返します。

おすすめ記事