[英]AWK - How to column match multiple matches in file A match one in File B
[英]AWK Column match
我试图找到一个与 grep 匹配的列,但没有运气下面是我的数据集
A1|B1|C1
A11|B2|C111
A1|B23|C97
cat file|while IFS="|" read -r A B C
do
x1=`egrep $A $file`. # here I want A1 should be matched to A1 but I am gettin A1/A11/A1
done
我想将第一行第一列的 A1 与其他行的 A1 进行比较,它可以是第 2/30 等。所以我想比较列和行到列行。
您可以使用grep
或awk
来做到这一点。 grep
使用扩展的 REGEX( -E
选项)将允许您使用字边界匹配\\b
来区分"A1"
和"A11"
,例如
grep -E '^A1\b' data
使用awk
的字段分隔符 ( FS
) '|'
您只需保存第一条记录( FNR==1
)中的第一个字段( $1
),然后匹配所有剩余记录的第一个字段,例如
awk -F'|' 'FNR==1{find=$1;print;next} $1==find' data
示例使用/输出
在上述两种情况下,使用名为data
的文件中的data
,输出为:
A1|B1|C1
A1|B23|C97
目前尚不清楚您想对剩余的比较做什么,但如果您明确表示,我很乐意进行编辑并进一步提供帮助。 如果您想比较或操作每条记录中的其他字段, awk
将是自然的选择。 发表评论或编辑您的问题以阐明"compare column and row to column row"
含义。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.