2017-10-16 232 views
0

在Unix领域相当新颖,我目前正试图从文本文件中提取数据集。我尝试过使用sed,grep,awk,但它似乎只能用于提取行,但我想提取整个数据集...以下是我想从中提取2个数据集的文件示例“时间强度”线)如何从文本文件中提取数据集?

[Header] 
Application Name LabSolutions 
Version 5.87 
Data File Name C:\LabSolutions\Data\Antoine\170921_AC_FluoSpectra\069_WT3a derivatized lignin LiCl 430_GPC_FOREVER_430_049.lcd 
Output Date 2017-10-12 
Output Time 12:07:32 

[Configuration] 
Instrument Name BOTAN127-Instrument1 
Instrument # 1 
Line # 1 
# of Detectors 3 
Detector ID Detector A Detector B PDA 
Detector Name Detector A Detector B PDA 
# of Channels 1 1 2 

[LC Chromatogram(Detector A-Ch1)] 
Interval(msec) 500 
# of Points 9603 
Start Time(min) 0,000 
End Time(min) 80,017 
Intensity Units mV 
Intensity Multiplier 0,001 
Ex. Wavelength(nm) 405 
Em. Wavelength(nm) 430 
R.Time (min) Intensity 
0,00000 -709779 
0,00833 -709779 
0,01667 17 
0,02500 3 
0,03333 7 
0,04167 19 
0,05000 9 
0,05833 5 
0,06667 2 
0,07500 24 
0,08333 48 

[LC Chromatogram(Detector B-Ch1)] 
Interval(msec) 500 
# of Points 9603 
Start Time(min) 0,000 
End Time(min) 80,017 
Intensity Units mV 
Intensity Multiplier 0,001 
R.Time (min) Intensity 
0,00000 149 
0,00833 149 
0,01667 -1 

我将不胜感激任何想法。提前致谢。 安托

+0

添加预期输出到问题以及至少一个您尝试的命令...我认为这个问答有助于自己解决它https://stackoverflow.com/questions/17908555/printing- with-sed-or-awk-a-line-following-a-matching-pattern – Sundeep

+0

或者像https://stackoverflow.com/questions/38972736/how-to-select-lines-between-two-patterns – Sundeep

回答

0
awk '/^[^0-9]/&&d{d=0} /R.Time/{d=1}d' file 

简要说明其一部分的R.Time和LC线,

  • 设置d作为是否确定打印行号
  • /^[^0-9]/&&d{d=0}:如果正则表达式^[^0-9]匹配& & d==1,残疾人d
  • /R.Time/{d=1}:如果字符串 “R.Time” 搜索,使d
+0

很棒!非常感谢... –

0
awk '/R.Time/,/LC/' file|grep -v -E "R.Time|LC" 

grep的部分将删除来作为输出的从AWK

0

我认为这是一个工作,sed的。

sed '/R.Time/!d;:A;N;/\n$/!bA' infile 
相关问题