Bash 如果file1的$3为<;则根据列比较两个文件;0英寸awk
根据文件1的第2列比较两个文件。如果file1的$3为0,file2的$3为“p”,则打印file2行,否则为空打印 文件1 文件2 输出如下所示:Bash 如果file1的$3为<;则根据列比较两个文件;0英寸awk,bash,shell,awk,sed,Bash,Shell,Awk,Sed,根据文件1的第2列比较两个文件。如果file1的$3为0,file2的$3为“p”,则打印file2行,否则为空打印 文件1 文件2 输出如下所示: 1; a; n; 2; b; n; 4; d; p; 使用awk: awk -F'; *' 'NR==FNR{a[$2]=$3;next}$3=="n" && a[$2]<0 || $3=="p" && a[$2]>0' file1 file2 1; a; n; 2; b; n; 4; d; p
1; a; n;
2; b; n;
4; d; p;
使用
awk
:
awk -F'; *' 'NR==FNR{a[$2]=$3;next}$3=="n" && a[$2]<0 || $3=="p" && a[$2]>0' file1 file2
1; a; n;
2; b; n;
4; d; p;
awk-F';*''NR==FNR{a[$2]=$3;next}$3==“n”&&a[$2]0'文件1文件2
1.A.N
2.BN
4.DP
将文件1的第3列存储在数组中第2列的索引中。对于第二个文件,只需测试您的条件。如果其中一个为真,默认情况下,
awk
将为您打印该行 使用这个简单的脚本并获得结果
#!/bin/bash
while
read -r lineA <&3
read -r lineB <&4
do
val1=`echo "$lineA" | cut -d";" -f3`
val2=`echo "$lineB" | cut -d";" -f3`
if [ -n "$val1" ] && [ -n "$val2" ] ; then
if [ $val1 -lt 0 ] && [ $val2 == "n" ] ; then
echo "$lineB"
elif [ $val1 -gt 0 ] && [ $val2 == "p" ] ;then
echo "$lineB" ;
fi
fi
done 3<a.txt 4<b.txt
#/bin/bash
虽然
阅读-r lineA**感谢Kalanidhi M**
awk -F'; *' 'NR==FNR{a[$2]=$3;next}$3=="n" && a[$2]<0 || $3=="p" && a[$2]>0' file1 file2
1; a; n;
2; b; n;
4; d; p;
#!/bin/bash
while
read -r lineA <&3
read -r lineB <&4
do
val1=`echo "$lineA" | cut -d";" -f3`
val2=`echo "$lineB" | cut -d";" -f3`
if [ -n "$val1" ] && [ -n "$val2" ] ; then
if [ $val1 -lt 0 ] && [ $val2 == "n" ] ; then
echo "$lineB"
elif [ $val1 -gt 0 ] && [ $val2 == "p" ] ;then
echo "$lineB" ;
fi
fi
done 3<a.txt 4<b.txt