[英]Displaying only a part of a line in Bash
我有一行数据。 它包含单词和数字。
15 F= -.33052537E+03 E0= -.33051414E+03 d E=.720942E-05 mag=24.6037:3
我需要从此行中提取值-.33052537E + 03。
bash
$ read one two three rest <<<' 15 F= -.33052537E+03 E0= -.33051414E+03 d E=.720942E-05 mag=24.6037:3'
$ echo "$three"
-.33052537E+03
awk
和bash
: $ awk '{print $3}' <<<' 15 F= -.33052537E+03 E0= -.33051414E+03 d E=.720942E-05 mag=24.6037:3'
-.33052537E+03
sed
和bash
: $ sed 's/.*F= //; s/ E0=.*//' <<<' 15 F= -.33052537E+03 E0= -.33051414E+03 d E=.720942E-05 mag=24.6037:3'
-.33052537E+03
grep
和bash
: $ grep -oP '(?<=F= ).*(?= E0=)' <<<' 15 F= -.33052537E+03 E0= -.33051414E+03 d E=.720942E-05 mag=24.6037:3'
-.33052537E+03
如果仅存在一行,则将该行分配给变量。
var="15 F= -.33052537E+03 E0= -.33051414E+03 d E=.720942E-05 mag=24.6037:3"
echo $var|awk '{print $3}'
如果有很多行,则将这些行插入文件中,然后
awk '{print $3}' file.txt
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.