特定の文字の後にのみファイルから新しいファイルに値をコピーする

特定の文字の後にのみファイルから新しいファイルに値をコピーする

次の形式のファイルがあります。

Reading frame    3000 time 30000.000   ^MReading frame    3000 time 30000.000   mu  8.788e+00 <mu>  2.945e-03

mu 次の値だけを、次のような希望の出力を持つ新しいファイルに貼り付けたいと思います。

8.788e+00

私は成功せずに次のコマンドを試しました

grep "mu" filename1 | sed 's/^.* //' > filename2

答え1

使用sed:

sed -n -E 's/.*mu +([0-9.e+-]+) .*/\1/p' file

正規表現では文字列muと数字が一緒に必要です。

答え2

awk '{for(i=1;i<=NF;i++)if($i == "mu")print $(i+1)}' file

関連情報