cha*_*les 4 scripting text-processing
我有一个文件,我需要将两列中的值与另外两列中的值进行比较。举些例子:
Item A B C D
1 201 3101 3101 201
2 3101 201 202 3101
3 3101 201 201 3102
4 3101 201 3202 202
Run Code Online (Sandbox Code Playgroud)
因此,我试图做的是比较列一&乙到Ç&d,但在列值一&乙和Ç&d是可以互换的。如果两个值相同,我希望有一个像2这样的输出,如果只有一个匹配,则为1,如果两者都不匹配,则为0。答案是这样的
Item A B C D Output
1 201 3101 3101 201 2
2 3101 201 202 3101 1
3 3101 201 201 3102 1
4 3101 201 3202 202 0
Run Code Online (Sandbox Code Playgroud)
我将如何能够实现这一目标?
这个awk在线工具让您非常接近所需的输出(至少数字是正确的)。
awk '{n=0} $2==$4 {n=n+1} $2==$5 {n=n+1} $3==$4 {n=n+1} $3==$5 {n=n+1} {print $0, n}' inputfile
Run Code Online (Sandbox Code Playgroud)
awk这里使用的是基本的。引号之间的字符串对每一行都执行,而括号之间的块只有在前面的语句为真时才执行。$i指的是第 i 列。