我在 awk 中运行 md5sum 以找到相同的文件:
ls -lS | awk 'BEGIN {
getline;getline;
name1=$9;size1=$5
}
{
name2=$9;size2=$5;
if (size1==size2) {
cmd1="md5sum "name1
cmd2="md5sum "name2
cmd1 | getline; sum1=$1
cmd2 | getline; sum2=$1
print sum1,sum2
if (sum1 == sum2) {
print name1;print name2
}
};
name1=name2;size1=size2
}'
- 我的外壳的输出是:
b1946ac92492d2347c6235b4d2611184 b1946ac92492d2347c6235b4d2611184
测试
test_cpy1
-rw-rw-r-- b1946ac92492d2347c6235b4d2611184
您可以看到有一个 md5sum 不正确...但是如果我将两个 cmd 行序列更改为:
cmd2 | getline; sum2=$1
cmd1 | getline; sum1=$1
输出是对的。我很困惑...
b1946ac92492d2347c6235b4d2611184 b1946ac92492d2347c6235b4d2611184
test
test_cpy1
b1946ac92492d2347c6235b4d2611184 b1946ac92492d2347c6235b4d2611184
test_cpy1
test_cpy2