美文网首页生信linuxLinux学习与应用技巧
awk多文件处理时的分隔符?

awk多文件处理时的分隔符?

作者: 生物信息与育种 | 来源:发表于2021-07-07 20:26 被阅读0次

问题来源

我有两个文件,一个是plink过滤后得到的.fam文件(空格分隔);另一个是样本对应关系文件(tab分隔)。
文件1:


image.png

文件2:


image.png

两个文件匹配,awk常规操作。这里我想要保留文件2中和文件1第一二列匹配得到的样本(匹配后文件2的第一列)。当然这里两个文件数目是一样的,所以应该全部匹配才对(测试用)。

常规操作:

awk  '{if(NR==FNR){a[$1]}else if($2 in a)print $1}' file1.fam file2
image.png

发现少了两个样本,空格符分开的两个样。

定义下输入(FS)输出(OFS):

awk -v FS=' '  -v OFS='\t' '{if(NR==FNR){a[$1]}else if($2 in a)print $1}' file1.fam file2

结果是一样的,因为输入的分隔符一样。

当空白格和tab同时存在时,如何定义?如何得到正确的结果?

解决方法

在对应文件前分别指定FS即可。

awk  '{if(NR==FNR){a[$1]}else if($2 in a)print $1}' FS=" " file1.fam FS="\t" file2
image.png

https://stackoverflow.com/questions/24516141/processing-2-files-with-different-field-separators-using-awk

相关文章

  • awk多文件处理时的分隔符?

    问题来源 我有两个文件,一个是plink过滤后得到的.fam文件(空格分隔);另一个是样本对应关系文件(tab分隔...

  • 2020-01-17

    centOS 中awk命令中分隔符含有'[ ]' 使用awk处理文本时,若指定的分隔符包含中括号(比如要使用'[a...

  • 浅析 awk 文本分析

    作用 awk 逐行读取文件,以空格为分隔符将每行切片,切开的部分再进行各种分析处理 格式 awk {option}...

  • awk使用

    awk上 awk上 分段查询,指定分隔符 分段查询不使用分隔符,则默认以空格或空白字符分割打印多段可以以 ,或者其...

  • shell编程要点总结

    统计文件列数:awk -F '列分隔符' '{print NF}' file | head -n1 查看文件最后一...

  • 每天一个linux命令(10)AWK命令用法与举例

    一、AWK简介 awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常...

  • awk使用

    awk使用说明 awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常...

  • awk笔记

    AWK 简介基本概念基本命令形式命令参数-f 指定 awk 程序文件-F 指定分隔符设置 RS 变量-v 变量赋值...

  • awk基本用法及案例详解

    0 引言 awk是一个强大的文本分析工具,把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行分析处理...

  • awk+sed+vim等技巧

    awk技巧 awk的内置变量: FS:(Input Field Separator)表示awk所认知的分隔符 OF...

网友评论

    本文标题:awk多文件处理时的分隔符?

    本文链接:https://www.haomeiwen.com/subject/ykjaultx.html