![用于读取 2 个文件并仅打印不常见内容的脚本](https://linux22.com/image/15308/%E7%94%A8%E4%BA%8E%E8%AF%BB%E5%8F%96%202%20%E4%B8%AA%E6%96%87%E4%BB%B6%E5%B9%B6%E4%BB%85%E6%89%93%E5%8D%B0%E4%B8%8D%E5%B8%B8%E8%A7%81%E5%86%85%E5%AE%B9%E7%9A%84%E8%84%9A%E6%9C%AC.png)
我正在尝试比较 2 个文件。如果内容不常见,我想回应它们。
到目前为止,这是我的代码
#!/bin/bash
while IFS= read -r line && IFS= read -r line2 <&3; do
if [ "$line" -ne "$line2" ]; then
echo "we doing this $line2"
else
echo "we will not do this $line2"
fi
done <file1test 3<file2test
我正在测试的每个文件的内容只是数字。 file1test 是从每行 1..10 开始,file2test 是从每行 1..20 开始。
我的代码仅回显 1..10,这是两者共有的。
答案1
使用状态标志使其正常工作
while IFS= read -r line
do
status=0
while IFS= read -r line2 <&3
do
if [ "$line" = "$line2" ]; then
status=1
break
fi
done 3< file1test
if [ "$status" != 1 ]; then
echo "$line"
fi
done < file2test