awk - 如果特定值在另一个中,则 awk 解析字段
问题描述
在awk
下面,我尝试$2
使用_
only if$3
是特定值(ID)进行解析。我正在将该解析后的值读入一个数组,并将其用作查找中的键。确实执行,awk
但整个第 2 行或ID
in行$3
打印不仅仅是所需的。print 语句仅用于查看结果(仅用于测试),不会成为脚本的一部分。谢谢 :)。
awk
awk -F'\t' '$3=="ID"
f="$(echo $2|cut -d_ -f1,1)"
{
print $f
}' file
文件 tab-delimited
R_Index locus type
17 chr20:31022959 NON
18 chr11:118353210-chr9:20354877_KMT2A-MLLT3.K8M9 ID
想要的
$f = chr11:118353210-chr9:20354877
解决方案
不完全清楚,请您尝试以下。
awk '{split($2,array,"_");if(array[2]=="KMT2A-MLLT3.K8M9"){print array[1]}}' Input_file
或者,如果您想在打印所有行的同时更改第二个字段的值,请尝试执行一次。
awk '{split($2,array,"_");if(array[2]=="KMT2A-MLLT3.K8M9"){$2=array[1]}} 1' Input_file
推荐阅读
- java - 如何使用 Spring Boot 验证 REST API 中的金融交易?
- java - 通过java取消隐藏文本文件
- mysql - 将静态查询从列结果转换为行结果
- javascript - 如何使用 React-Bootstrap 根据项目计数创建轮播项目
- java - Firestore 查询问题:我在哪里弄错了?
- javascript - 谷歌图表下载并保存PNG文件
- php - 第一次将我的数据库链接到我在 xampp 上的服务器
- woocommerce - 在产品页面上为相关产品设置折扣价
- apache-kafka - Kafka - 当一条消息被视为“已提交”时
- c# - 在控制器端点内生成资源 URL