0

いくつかのファイル (.txt) があります。名前は次のとおりです。

run_freq100ampl0.6offs0.8_1
run_freq100ampl0.4offs1.1_1
run_freq100ampl0.2offs1.0_1
run_freq100ampl0.4offs1.2_1
run_freq100ampl0.2offs1.1_1
run_freq100ampl0.5offs0.8_1
run_freq100ampl0.2offs1.2_1
run_freq100ampl0.4offs0.8_1

次のように、アンプの数を取得したい

0.6
0.4
0.2
0.4
0.2
0.5
0.2
0.4

Linux で「find」、「grep」、または「cat」を使用するにはどうすればよいですか?

4

3 に答える 3

1

使用grep:

grep -Po '(?<=ampl).*(?=offs)' input

例:

$ grep -Po '(?<=ampl).*(?=offs)' <<< "run_freq100ampl0.2offs1.1_1"
0.2

使用sed:

$ sed 's/.*ampl\(.*\)offs.*/\1/' <<< "run_freq100ampl0.2offs1.1_1"
0.2
于 2013-10-09T13:32:45.857 に答える
0
for f in *.txt
do
  f=${f%offs*}
  f=${f#*ampl}
  echo ${f}
done
于 2013-10-09T19:36:44.180 に答える