在一个文件中,我有一个特定的结构:
------------------------------
| 1 123.456 789.1011 T |
| 2 789.123 234.1234 T |
------------------------------
All true
我可以
grep -s -B 3 "All true" file.out | head -n 2
仅获取相关行
| 1 123.456 789.1011 T |
| 2 789.123 234.1234 T |
我现在如何继续获取变量中的第一个数字(123.456
和789.123
),但乘以某个值x
有没有办法获得n
grep 行的第 'th 参数或其他东西?
答案1
短的grep+awk方法:
比方说,乘数是3
:
grep -sB 3 "All true" file.out | awk -v x=3 '$1=="|"{ print $3*x }'
输出:
370.368
2367.37
-v x=3
- 将乘数作为x
变量传递给awk脚本
答案2
感谢@Philippos,我设法得到了答案:
number=$(grep -s -B 3 "All true" file.out | head -n 2 | cut -d' ' -f6 )
for i in ${number}
do
echo "$i*$x" | bc -l
done