繁体   English   中英

如何通过 awk 将两个字段分隔符添加到同一个表?

[英]How to add two field separators to same table by awk?

我有一张这样的桌子

100 行这样,它是第一行:

25 迈克罗宾 115 DDA

我想像这样重写整个表:

25_Mike_Robin 迈克罗宾 115 DDA

我试过:

awk '{OFS="_"}; {print $1, $2, $3} {print $2, $3, $4, $5}' test.txt

Output 就是这样,它们在不同的行中并且都具有相同的 FS:

25_迈克_罗宾

Mike_Robin_115_DDA

然后我试了这个,但它给了我一个语法错误:

awk '{OFS="_"}; {打印 $1, $2, $3}; {OFS="\t"; {print $2, $3, $4, $5}' test.vcf

单线:

awk '{$1=$1"_"$2"_"$3}1' file

示例输入:

$ cat input
25 Mike Robin 115 DDA
39 Sarah Cook 223 DDC
127 Elizabeth Johnstone 68 XP3

我们重新定义第一个字段的一个awk想法:

$ awk '{$1=$1 "_" $2 "_" $3; print}' input
25_Mike_Robin Mike Robin 115 DDA
39_Sarah_Cook Sarah Cook 223 DDC
127_Elizabeth_Johnstone Elizabeth Johnstone 68 XP3

使用awk

awk '{printf "%s_%s_%s %s %s %s %s\n", $1, $2, $3, $2, $3, $4, $5}' <<< "25 Mike Robin 115 DDA"
25_Mike_Robin Mike Robin 115 DDA

要么

awk '{print $1"_"$2"_"$3" "$2" "$3" "$4" "$5}' <<< "25 Mike Robin 115 DDA"
25_Mike_Robin Mike Robin 115 DDA

暂无
暂无

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

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