<p>请您尝试以下,用GNU<code>awk</code>中显示的样本编写和测试</p>
<pre><code>awk '
{
$0=$0+0
}
FNR==NR{
a[$0]
next
}
($0 in a){
b[$0]
next
}
{ print }
END{
for(j in a){
if(!(j in b)){ print j }
}
}
' compare1.txt compare2.txt
</code></pre>
<p><em><strong>解释:</strong></em>添加上述内容的详细解释</p>
<pre><code>awk ' ##Starting awk program from here.
{
$0=$0+0 ##Adding 0 will remove extra zeros from current line,considering that your file doesn't have float values.
}
FNR==NR{ ##Checking condition FNR==NR which will be TRUE when 1st Input_file is being read.
a[$0] ##Creating array a with index of current line here.
next ##next will skip all further statements from here.
}
($0 in a){ ##Checking condition if current line is present in a then do following.
b[$0] ##Creating array b with index of current line.
next ##next will skip all further statements from here.
}
{ print } ##will print current line from 2nd Input_file here.
END{ ##Starting END block of this code from here.
for(j in a){ ##Traversing through array a here.
if(!(j in b)){ print j } ##Checking condition if current index value is NOT present in b then print that index.
}
}
' compare1.txt compare2.txt ##Mentioning Input_file names here.
</code></pre>