我有一个包含整数列的文件 - >文件1
1 2 3
2 2 2
3 2 1
3 1 4
4 1 4
5 0 0
我有另一个文件,其中包含一列(唯一)整数 - > file2的
1
3
4
两个文件都非常大。我想删除第一列值不会出现在File2中的File1行。
1 2 3
3 2 1
3 1 4
4 1 4
答案 0 :(得分:1)
你可以通过File1的行循环,从每行中提取第一个数字,并尝试找到与File2中的数字完全匹配。
#!/bin/bash
IFS=$'\n'
re='^[0-9]+$'
for i in $( cat File1 ); do
num=$( echo $i | awk '{print $1}' )
grp=$( grep "^${num}\b" File2 )
if [[ $grp =~ $re ]] ; then
echo $i
fi
done
您可以将此脚本的输出保存在临时文件中,并使用它来覆盖原始File1。