第9列有多个以“;”分隔的值。我试图在标签限制文件的第9列中的“name_id”之后找到第一次出现的字符串 - 文件的第一行看起来像这样。
1 NY state 3102016 3102125 . + . name_id "ENSMUSG8868"; trans_id "ENSMUST00000082908"; number "1"; id_name "Gm26206";ex_id "ENSMUSE000005";
有多个值以“;”分隔在第9列。我可以拿出这个命令来拉出最后一个“ENSMUSE000005”id
sed 's|.*"\([0-9_A-Z]\+\)".*|\1|' input.txt | head
可以用awk中的正则表达式完成吗?非常感谢!
答案 0 :(得分:2)
echo $x |awk -F';' '{split($1,a," ");gsub(/"/ ,"" ,a[10]);print a[10]}'
ENSMUSG8868
其中x是你的行。
根据OP的评论:
echo $x |awk -F';' '{split($1,a," ");gsub(/"/ ,"" ,a[10]);print a[1],a[10]}'
1 ENSMUSG8868