複数のgrep-outputを1つのコマンドで処理する可能性はありますか?複数のマッチごとにコマンドをgrepして実行する方法
私は
<fulldata>
<value>1</value>
<value>2</value>
</fulldata>
<fulldata>
<value>2</value>
<value>3</value>
</fulldata>
のようなものを持って、手段、標準偏差を取得し、独自にデータ要素といくつか他のことをやりたいきました。この場合
、私はidealy改行で区切られた、(サンプルデータのための)期待される結果と
function printStatistics {
mean1=$(awk -F ';' '{print $1}' $1 | awk '{sum += $1; square += $1^2} END {print sum/NR}')
deviation1=$(awk -F ';' '{print $1}' $1 | awk '{sum += $1; square += $1^2} END {print sqrt(square/NR - (sum/NR)^2)}')
size=$(cat $1 | wc -l)
echo $mean1 $deviation1 $size
}
を実行したい:
1,5 0,7 2
2,5 0,7 2
が
cat add.xml | grep "<fulldata" -A 2001 | while read line ; do echo "Line: $line" ; done
ランニングHow to grep and execute a command (for every match)で提案されているように、各行に1つのエントリが作成されます。私は各エントリのための1つのエントリを(後でawk
のものを実行するために)欲しいです。
これはgrepで可能ですか、これは別の言語が適切なユースケースですか?
XMLではなく、行指向のデータ形式です。 'grep'ではなく、適切なXMLパーサーを使用してください。 – chepner
*平均値、標準偏差などを取得する* - 予想される結果を投稿する – RomanPerekhrest