繁体   English   中英

如何解析我想在shell命令中提取的单词?

[英]How to parse the words that I want to extract in a shell command?

我是linux命令的新手。

我正在尝试管理大型数据文件,我正在向您显示一行,如下所示。

6       129781361       TAR20   DB;DP=95;FS=0.321;GC=39.60;MQ=60.00;SOMATIC;VT=SNP

我要提取的是“FS及其价值”。

所以,我想在FS字段中包含一个值0.321。

当然,我可以使用R语言和其他编程语言提取这些值。

但是,这是非常费力的任务,因为我现在在linux命令上。

因此,我想学习如何提取FS字段及其价值。

你能告诉我如何以有效的方式从FS中提取0.321吗?

谢谢!

你可以使用awk

awk -F '[ ;,]+' '{print $6}' file
FS=0.321

要获得价值部分:

awk -F '[ ;,]+' 'split($6, a, "="){print a[2]}' file
0.321

或者使用grep -oP (gnu-grep):

grep -oP 'FS=\K[\d.]+' file
0.321

例如,您可以使用:

perl -ne "/FS=([^;]*)/; print $1" input.txt

这将提取“FS =”与下一个分号或行尾之间的所有内容,以先到者为准。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM