You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用awk筛选Linux中以'viridae'结尾的分类单元?

用awk提取分号分隔数据中以viridae结尾的分类单元

问题背景

有如下分号分隔的分类数据:

Viruses; Riboviria; Orthornavirae; Negarnaviricota; Polyploviricotina; Insthoviricetes; Articulavirales; Orthomyxoviridae; Alphainfluenzavirus
Viruses; Riboviria; Orthornavirae; Pisuviricota; Pisoniviricetes; Sobelivirales; Solemoviridae; Polerovirus

需要提取其中所有以viridae结尾的分类单元,且这类单元在每行中的位置不固定,要求用Linux下的awk工具实现。

解决方案

可以用以下awk命令直接提取目标内容:

awk -F'; ' '{for(i=1;i<=NF;i++){if($i ~ /viridae$/) print $i}}' input.txt

命令解释

  • -F'; ':指定输入行的字段分隔符为分号加空格,确保每个分类单元被正确拆分。
  • for(i=1;i<=NF;i++):遍历当前行的所有字段(NF代表当前行的字段总数)。
  • if($i ~ /viridae$/):通过正则表达式匹配字段是否以viridae结尾($锚定字段末尾,避免匹配包含viridae但不是结尾的内容)。
  • print $i:输出符合条件的字段。

运行结果

对示例数据执行上述命令后,输出如下:

Orthomyxoviridae
Solemoviridae

内容的提问来源于stack exchange,提问作者Bio_farmer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 05:31:17