我有一堆文件,例如:
error1.sol
error2.sol
comment1.sol
等等
我的程序创建了这些输出文件:
myerror1.sol
myerror2.sol
mycomment1.sol
等等
我如何以优雅的方式使用diff
来匹配
diff error1.sol myerror1.sol
diff error2.sol myerror2.sol
自动?
答案 0 :(得分:2)
for fname in my*.sol
do
diff "${fname#my}" "$fname"
done
以上查找程序创建的每个文件(my*.sol
)。每个此类文件依次分配给变量名fname
。使用fname
,我们可以通过从前面删除my
来获取源文件的名称。这是通过${fname#my}
完成的。然后在这两个文件上运行diff
。循环重复与当前目录中的文件一样多。
如果添加echo
命令以显示正在比较的文件,您可能会发现输出更容易阅读:
for fname in my*.sol
do
echo Comparing "${fname#my}" and "$fname"
diff "${fname#my}" "$fname"
done