Думаю, все работает
progress -w
No command currently running: cp, mv, dd, tar, cat, rsync, grep, fgrep, egrep, cut, sort, md5sum, sha1sum, sha224sum, sha256sum, sha384sum, sha512sum, adb, gzip, gunzip, bzip2, bunzip2, xz, unxz, lzma, unlzma, zcat, bzcat, lzcat, or wrong permissions.
означает, что в данный момент не запущен процесс mv,cp
возможно, файл был перемещен до того, как вы запустили прогресс -w
Этот подход основан на объединении всех различий двух файлов в единый контекст. Поэтому предполагается, что ни один из файлов не будет иметь длину более 999 999 строк.
Создайте этот скрипт как ./foo.sh
и chmod
его 755:
#!/usr/bin/env bash
max=0 # length of the highest consecutive section found
fline= # first line of the highest consecutive section found
tline= # first line of the current consecutive section found
n=0 # scratch counter
while IFS= read -r line
do
case ${line:0:1} in
' ') n=$(($n+1))
[ $n -eq 1 ] && tline="${line:1}"
[ $n -gt $max ] && { max=$n; fline="$tline"; }
;;
*) n=0
esac
done
printf "the largest section is %d lines starting with '%s'\n" $max "$fline"
Теперь запустите diff
на своих файлах и передайте их в оболочку. Оболочка просто ищет самую длинную серию строк, начинающихся с пробела, и сообщает значение первой строки этого раздела :
$ diff -u999999 file1 file2 |./foo.sh
the largest section is 3 lines starting with 'D'