2017-06-23 91 views
-1

这是我的输入文件的一部分。我需要提取数据。具体而言,我想提取部分逸度:单位[bar]。我已经使这些价值大胆。告诉我该怎么做?bash脚本:(数据提取)使用awk sed grep或其他有用的命令给出暗示

Component 0 [hexane] (Adsorbate molecule) 
    Partial pressure:  5000.00000000000000 [Pa] 
          37.50000000000000 [Torr] 
           0.05000000000000 [bar] 
           0.04934616333580 [atm] 

    Fugacity coefficient:  0.9986883219 [-] 

    Partial fugacity:  4993.44160943095812 [Pa] 
          37.45081207073218 [Torr] 
           ***0.04993441609431 [bar]*** 
           0.04928143705335 [atm] 
Component 1 [22-dimethylbutane] (Adsorbate molecule) 
    Partial pressure:  5000.00000000000000 [Pa] 
          37.50000000000000 [Torr] 
           0.05000000000000 [bar] 
           0.04934616333580 [atm] 

    Fugacity coefficient:  0.9988647141 [-] 

    Partial fugacity:  4994.32357042947660 [Pa] 
          37.45742677822107 [Torr] 
           ***0.04994323570429 [bar]*** 
           0.04929014133165 [atm] 
+0

请[编辑]你的问题,以显示[你到目前为止的代码](http:// wh athaveyoutried.com)。你至少应该包括一个你遇到问题的代码大纲(但最好是[mcve]),然后我们可以尝试帮助解决具体问题。你还应该阅读[问]。 –

回答

0

未经测试:

cat {file} |grep -A 3 fugacity| grep bar| awk -F" " '{print $1}' 
+0

谢谢!得到了数据 –

1

只有1个命令:

awk '/fugacity/ { getline; getline; if ($2 == "[bar]") print $1 }' file.txt 

不是很从你的问题,例如明确的,但如果你想只是第一个

awk '/fugacity/ { getline; getline; if ($2 == "[bar]") {print $1; exit} }' file.txt 
+0

极好。我仍然得到两个值,因为我有两个组件。你能告诉我如何为不同的组件获得不同的值? –

+0

你可以展示你期望作为输出吗? –

+0

我只想要部分逸度的一个值,0.04993441609431 –