Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 在多个具有变量名的文件上使用diff_Bash_File_Terminal - Fatal编程技术网

Bash 在多个具有变量名的文件上使用diff

Bash 在多个具有变量名的文件上使用diff,bash,file,terminal,Bash,File,Terminal,我有一大堆文件,例如: error1.sol error2.sol comment1.sol 等等 我的程序已创建以下输出文件: myerror1.sol myerror2.sol mycomment1.sol 等等 如何以优雅的方式使用diff进行匹配 diff error1.sol myerror1.sol diff error2.sol myerror2.sol 自动地 for fname in my*.sol do diff "${fname#my}" "$fname" d

我有一大堆文件,例如:

error1.sol
error2.sol
comment1.sol
等等

我的程序已创建以下输出文件:

myerror1.sol
myerror2.sol
mycomment1.sol
等等

如何以优雅的方式使用
diff
进行匹配

diff error1.sol myerror1.sol
diff error2.sol myerror2.sol
自动地

for fname in my*.sol
do
    diff "${fname#my}" "$fname"
done
上面查找程序创建的每个文件(
my*.sol
)。每个这样的文件依次分配给变量名
fname
。使用
fname
,我们可以通过从前面删除
my
来获取源文件的名称。这是通过
${fname#my}
完成的<然后在这两个文件上运行code>diff。循环重复的文件数量与当前目录中的文件数量相同

如果添加
echo
命令以显示正在比较的文件,您可能会发现输出更易于阅读:

for fname in my*.sol
do
    echo Comparing "${fname#my}" and "$fname"
    diff "${fname#my}" "$fname"
done