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

标签 linux shell parsing

我是 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

关于linux - 如何解析我想在 shell 命令中提取的单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34716044/

相关文章:

php - PHP解析/语法错误;以及如何解决它们

linux - Windows 的 Shell 脚本模拟器

c++ - 我怎么知道在使用 ofstream 时我达到了文件的最大大小?

linux - 使用占位符更新文件内容

shell "if"语句

告诉错误位置的 JavaScript JSON 解析器

ios - 如何在iOS上使用XPath进行抓取?

linux - 使用 awk 和排序

linux - apt-get 无法获取错误

c++ - 关于linux shell函数与C函数的关系()