[英]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.