我有一些文件(.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'来做到这一点?
答案 0 :(得分: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
答案 1 :(得分:0)
使用awk
awk -F"ampl|off" '{print $2}'
0.6
0.4
0.2
0.4
0.2
0.5
0.2
0.4
或使用固定位置
awk '{print substr($0,16,3)}'
答案 2 :(得分:0)
for f in *.txt
do
f=${f%offs*}
f=${f#*ampl}
echo ${f}
done