私はbashスクリプトを作成していますが、私は完全に初めてで迷子になりました。
私はこのコードを書いた
cat * | grep "|*parameter1*|" | grep "|*parameter2*|" | cut -f 8,11,12,15,21,23,34 -d "|" | wc -l
wc -l
これはうまく機能しますが、他のbashコマンドを使用して平均化できるように、出力を変数として読み取る必要があります。次に、この平均を印刷して人が読めるようにします。
答え1
$()
直接の質問に答えるには、その出力が変数に割り当てられるように、コードをシーケンスにラップする必要があります。このように:
x=$(your_code_goes_here)
つまり、あなたの冗談についていくつかの注意があります。
なぜリードするのです
cat *
か?これはそうだ猫の無駄な使用。自分でできます。grep pattern *
*
これは、現在のディレクトリ内のすべてのファイルとサブディレクトリと一致し、(再帰)オプションを指定せずにディレクトリから検索するように要求した場合に警告を表示するため、grep
まだ良い考えではありません。ユースケースによっては、-r
使用法が適切である場合とそうでない場合があります。*
wc -l
結局、目的が何であるかよくわかりません。cut
複数行にわたって出力を印刷しないので、wc -l
(行数を計算すると)常に1が返されます。
答え2
次の構文を使用できます。
var=$(cat * | grep "|*parameter1*|" | grep "|*parameter2*|" | cut -f 8,11,12,15,21,23,34 -d "|" | wc -l)