Настоящий ответ на основе okular идеален.
Другой вариант - настроить Acrobat Reader для этого.
Перейдите к
Edit > Preferences > Accessibility > Replace Document Colors > Check box in Custom Colors
, затем выберите свои цвета; новые настройки автоматически загружаются при следующем открытии одного и того же типа PDF (LaTeX сгенерирован?).
Используя цикл for с find, это может быть не самый быстрый способ достижения вашей цели, но должен работать правильно:
for dir in DIRECTORY01/*/ ; do fcount=$(find "$dir" -maxdepth 1 -type f \( -name '*.flac' -o -name '*.m4a' -o -name '*.mp3' \) -printf . | wc -c) ; ocount=$(find "${dir/DIRECTORY01/DIRECTORY02}" -maxdepth 1 -type f -name '*.ogg' -printf . | wc -c); if [[ "$fcount" -ne "$ocount" ]]; then echo "$dir has $fcount .flac .m4a and .mp3 files but ${dir/DIRECTORY01/DIRECTORY02} has $ocount .ogg files" ; fi ; done
Или более читаемо
for dir in DIRECTORY01/*/ ; do
fcount=$(find "$dir" -maxdepth 1 -type f \( -name '*.flac' -o -name '*.m4a' -o -name '*.mp3' \) -printf . | wc -c)
ocount=$(find "${dir/DIRECTORY01/DIRECTORY02}" -maxdepth 1 -type f -name '*.ogg' -printf . | wc -c)
if [[ "$fcount" -ne "$ocount" ]]; then
echo "$dir has $fcount .flac .m4a and .mp3 files but ${dir/DIRECTORY01/DIRECTORY02} has $ocount .ogg files"
fi
done
Выведет что-то похожее на:
DIRECTORY01/Nirvana - Nevermind/ has 12 .flac files but DIRECTORY02/Nirvana - Nevermind/ has 11 .ogg files
Для каждого каталога, где количество файлов не совпадает. Цикл не будет изящно обрабатывать условия ошибки, такие как каталог «Artist - Album», который появляется в DIRECTORY01, но не в DIRECTORY02, или различия в написании каталога «Album - Artist».
Используя цикл for с find, это может быть не самый быстрый способ достижения вашей цели, но должен работать правильно:
for dir in DIRECTORY01/*/ ; do fcount=$(find "$dir" -maxdepth 1 -type f \( -name '*.flac' -o -name '*.m4a' -o -name '*.mp3' \) -printf . | wc -c) ; ocount=$(find "${dir/DIRECTORY01/DIRECTORY02}" -maxdepth 1 -type f -name '*.ogg' -printf . | wc -c); if [[ "$fcount" -ne "$ocount" ]]; then echo "$dir has $fcount .flac .m4a and .mp3 files but ${dir/DIRECTORY01/DIRECTORY02} has $ocount .ogg files" ; fi ; done
Или более читаемо
for dir in DIRECTORY01/*/ ; do
fcount=$(find "$dir" -maxdepth 1 -type f \( -name '*.flac' -o -name '*.m4a' -o -name '*.mp3' \) -printf . | wc -c)
ocount=$(find "${dir/DIRECTORY01/DIRECTORY02}" -maxdepth 1 -type f -name '*.ogg' -printf . | wc -c)
if [[ "$fcount" -ne "$ocount" ]]; then
echo "$dir has $fcount .flac .m4a and .mp3 files but ${dir/DIRECTORY01/DIRECTORY02} has $ocount .ogg files"
fi
done
Выведет что-то похожее на:
DIRECTORY01/Nirvana - Nevermind/ has 12 .flac files but DIRECTORY02/Nirvana - Nevermind/ has 11 .ogg files
Для каждого каталога, где количество файлов не совпадает. Цикл не будет изящно обрабатывать условия ошибки, такие как каталог «Artist - Album», который появляется в DIRECTORY01, но не в DIRECTORY02, или различия в написании каталога «Album - Artist».
Используя цикл for с find, это может быть не самый быстрый способ достижения вашей цели, но должен работать правильно:
for dir in DIRECTORY01/*/ ; do fcount=$(find "$dir" -maxdepth 1 -type f \( -name '*.flac' -o -name '*.m4a' -o -name '*.mp3' \) -printf . | wc -c) ; ocount=$(find "${dir/DIRECTORY01/DIRECTORY02}" -maxdepth 1 -type f -name '*.ogg' -printf . | wc -c); if [[ "$fcount" -ne "$ocount" ]]; then echo "$dir has $fcount .flac .m4a and .mp3 files but ${dir/DIRECTORY01/DIRECTORY02} has $ocount .ogg files" ; fi ; done
Или более читаемо
for dir in DIRECTORY01/*/ ; do
fcount=$(find "$dir" -maxdepth 1 -type f \( -name '*.flac' -o -name '*.m4a' -o -name '*.mp3' \) -printf . | wc -c)
ocount=$(find "${dir/DIRECTORY01/DIRECTORY02}" -maxdepth 1 -type f -name '*.ogg' -printf . | wc -c)
if [[ "$fcount" -ne "$ocount" ]]; then
echo "$dir has $fcount .flac .m4a and .mp3 files but ${dir/DIRECTORY01/DIRECTORY02} has $ocount .ogg files"
fi
done
Выведет что-то похожее на:
DIRECTORY01/Nirvana - Nevermind/ has 12 .flac files but DIRECTORY02/Nirvana - Nevermind/ has 11 .ogg files
Для каждого каталога, где количество файлов не совпадает. Цикл не будет изящно обрабатывать условия ошибки, такие как каталог «Artist - Album», который появляется в DIRECTORY01, но не в DIRECTORY02, или различия в написании каталога «Album - Artist».
Используя цикл for с find, это может быть не самый быстрый способ достижения вашей цели, но должен работать правильно:
for dir in DIRECTORY01/*/ ; do fcount=$(find "$dir" -maxdepth 1 -type f \( -name '*.flac' -o -name '*.m4a' -o -name '*.mp3' \) -printf . | wc -c) ; ocount=$(find "${dir/DIRECTORY01/DIRECTORY02}" -maxdepth 1 -type f -name '*.ogg' -printf . | wc -c); if [[ "$fcount" -ne "$ocount" ]]; then echo "$dir has $fcount .flac .m4a and .mp3 files but ${dir/DIRECTORY01/DIRECTORY02} has $ocount .ogg files" ; fi ; done
Или более читаемо
for dir in DIRECTORY01/*/ ; do
fcount=$(find "$dir" -maxdepth 1 -type f \( -name '*.flac' -o -name '*.m4a' -o -name '*.mp3' \) -printf . | wc -c)
ocount=$(find "${dir/DIRECTORY01/DIRECTORY02}" -maxdepth 1 -type f -name '*.ogg' -printf . | wc -c)
if [[ "$fcount" -ne "$ocount" ]]; then
echo "$dir has $fcount .flac .m4a and .mp3 files but ${dir/DIRECTORY01/DIRECTORY02} has $ocount .ogg files"
fi
done
Выведет что-то похожее на:
DIRECTORY01/Nirvana - Nevermind/ has 12 .flac files but DIRECTORY02/Nirvana - Nevermind/ has 11 .ogg files
Для каждого каталога, где количество файлов не совпадает. Цикл не будет изящно обрабатывать условия ошибки, такие как каталог «Artist - Album», который появляется в DIRECTORY01, но не в DIRECTORY02, или различия в написании каталога «Album - Artist».
Используя цикл for
с find
, это может быть не самый быстрый способ достижения вашей цели, но должен работать правильно:
for dir in DIRECTORY01/*/ ; do fcount=$(find "$dir" -maxdepth 1 -type f \( -name '*.flac' -o -name '*.m4a' -o -name '*.mp3' \) -printf . | wc -c) ; ocount=$(find "${dir/DIRECTORY01/DIRECTORY02}" -maxdepth 1 -type f -name '*.ogg' -printf . | wc -c); if [[ "$fcount" -ne "$ocount" ]]; then echo "$dir has $fcount .flac .m4a and .mp3 files but ${dir/DIRECTORY01/DIRECTORY02} has $ocount .ogg files" ; fi ; done
Или более читаемо
for dir in DIRECTORY01/*/ ; do
fcount=$(find "$dir" -maxdepth 1 -type f \( -name '*.flac' -o -name '*.m4a' -o -name '*.mp3' \) -printf . | wc -c)
ocount=$(find "${dir/DIRECTORY01/DIRECTORY02}" -maxdepth 1 -type f -name '*.ogg' -printf . | wc -c)
if [[ "$fcount" -ne "$ocount" ]]; then
echo "$dir has $fcount .flac .m4a and .mp3 files but ${dir/DIRECTORY01/DIRECTORY02} has $ocount .ogg files"
fi
done
Выведет что-то похожее на:
DIRECTORY01/Nirvana - Nevermind/ has 12 .flac files but DIRECTORY02/Nirvana - Nevermind/ has 11 .ogg files
Для каждого каталога, где количество файлов не совпадает. Цикл не будет изящно обрабатывать условия ошибки, такие как каталог «Artist - Album», который появляется в DIRECTORY01, но не в DIRECTORY02, или различия в написании каталога «Album - Artist».
Поскольку у вас больше .ogg, чем .flac, простой подход состоял бы в том, чтобы найти все имена *.ogg и проверить, какие из них не имеют соответствующего имени .flac. Что-то вроде:
find DIRECTORY02/ -type f -name '*ogg' -print0 |
while IFS= read -r -d '' f; do
flac="${f//.ogg/.flac}";
flac="${flac##DIRECTORY02/}";
[[ -e DIRECTORY01/"$flac" ]] ||
printf "Missing file: %s\n" "$flac";
done
Вот то же самое, что и прокомментированный скрипт:
#!/bin/bash
## find all files in DIRECTORY02/ whose name ends in .ogg
find DIRECTORY02/ -type f -name '*.ogg' -print0 |
## Iterate over the results of the find command, saving
## each file as "$f". The fancy -print0 and read -d '' stuff
## is needed to deal with filenames that can contain newlines.
while IFS= read -r -d '' f; do
## create the new $flac variable which is $f but with ".flac"
## instead of ".ogg"
flac="${f//.ogg/.flac}";
## remove the "DIRECTORY02/" from the $flac variable. If
## the "$f" variable was 'DIRECTORY02/artist - album/file.ogg'
## it is now 'artist - album/file.flac'.
flac="${flac##DIRECTORY02/}";
## Check whether the file exists in the same subdirectory under
## DIRECTORY01
[[ -e DIRECTORY01/"$flac" ]] ||
## If it doesn't, print
printf "Missing file: %s\n" "$flac";
done
Вы можете попробовать использовать meld. Описание:
Meld - графическое средство просмотра различий и приложение слияния для рабочего стола GNOME. Он поддерживает разницу в 2 и 3 файла, рекурсивную разницу в каталогах, различает каталоги под управлением версиями (Bazaar, Codeville, CVS, Darcs, Fossil SCM, Git, Mercurial, Monotone, Subversion), а также возможность ручного и автоматического слияния
1) Веб-сайт:
http://meldmerge.org/
2) И если он находится в вашем списке репозиториев , вы можете установить его с помощью:
sudo apt-get update
sudo apt-get install meld
3) Это также в приложении Ubuntu Software.
Вы можете попробовать использовать meld. Описание:
Meld - графическое средство просмотра различий и приложение слияния для рабочего стола GNOME. Он поддерживает разницу в 2 и 3 файла, рекурсивную разницу в каталогах, различает каталоги под управлением версиями (Bazaar, Codeville, CVS, Darcs, Fossil SCM, Git, Mercurial, Monotone, Subversion), а также возможность ручного и автоматического слияния
1) Веб-сайт:
http://meldmerge.org/
2) И если он находится в вашем списке репозиториев , вы можете установить его с помощью:
sudo apt-get update
sudo apt-get install meld
3) Это также в приложении Ubuntu Software.
Поскольку у вас больше .ogg, чем .flac, простой подход состоял бы в том, чтобы найти все имена *.ogg и проверить, какие из них не имеют соответствующего имени .flac. Что-то вроде:
find DIRECTORY02/ -type f -name '*ogg' -print0 |
while IFS= read -r -d '' f; do
flac="${f//.ogg/.flac}";
flac="${flac##DIRECTORY02/}";
[[ -e DIRECTORY01/"$flac" ]] ||
printf "Missing file: %s\n" "$flac";
done
Вот то же самое, что и прокомментированный скрипт:
#!/bin/bash
## find all files in DIRECTORY02/ whose name ends in .ogg
find DIRECTORY02/ -type f -name '*.ogg' -print0 |
## Iterate over the results of the find command, saving
## each file as "$f". The fancy -print0 and read -d '' stuff
## is needed to deal with filenames that can contain newlines.
while IFS= read -r -d '' f; do
## create the new $flac variable which is $f but with ".flac"
## instead of ".ogg"
flac="${f//.ogg/.flac}";
## remove the "DIRECTORY02/" from the $flac variable. If
## the "$f" variable was 'DIRECTORY02/artist - album/file.ogg'
## it is now 'artist - album/file.flac'.
flac="${flac##DIRECTORY02/}";
## Check whether the file exists in the same subdirectory under
## DIRECTORY01
[[ -e DIRECTORY01/"$flac" ]] ||
## If it doesn't, print
printf "Missing file: %s\n" "$flac";
done
Вы можете попробовать использовать meld. Описание:
Meld - графическое средство просмотра различий и приложение слияния для рабочего стола GNOME. Он поддерживает разницу в 2 и 3 файла, рекурсивную разницу в каталогах, различает каталоги под управлением версиями (Bazaar, Codeville, CVS, Darcs, Fossil SCM, Git, Mercurial, Monotone, Subversion), а также возможность ручного и автоматического слияния
1) Веб-сайт:
http://meldmerge.org/
2) И если он находится в вашем списке репозиториев , вы можете установить его с помощью:
sudo apt-get update
sudo apt-get install meld
3) Это также в приложении Ubuntu Software.
Поскольку у вас больше .ogg, чем .flac, простой подход состоял бы в том, чтобы найти все имена *.ogg и проверить, какие из них не имеют соответствующего имени .flac. Что-то вроде:
find DIRECTORY02/ -type f -name '*ogg' -print0 |
while IFS= read -r -d '' f; do
flac="${f//.ogg/.flac}";
flac="${flac##DIRECTORY02/}";
[[ -e DIRECTORY01/"$flac" ]] ||
printf "Missing file: %s\n" "$flac";
done
Вот то же самое, что и прокомментированный скрипт:
#!/bin/bash
## find all files in DIRECTORY02/ whose name ends in .ogg
find DIRECTORY02/ -type f -name '*.ogg' -print0 |
## Iterate over the results of the find command, saving
## each file as "$f". The fancy -print0 and read -d '' stuff
## is needed to deal with filenames that can contain newlines.
while IFS= read -r -d '' f; do
## create the new $flac variable which is $f but with ".flac"
## instead of ".ogg"
flac="${f//.ogg/.flac}";
## remove the "DIRECTORY02/" from the $flac variable. If
## the "$f" variable was 'DIRECTORY02/artist - album/file.ogg'
## it is now 'artist - album/file.flac'.
flac="${flac##DIRECTORY02/}";
## Check whether the file exists in the same subdirectory under
## DIRECTORY01
[[ -e DIRECTORY01/"$flac" ]] ||
## If it doesn't, print
printf "Missing file: %s\n" "$flac";
done
Вы можете попробовать использовать meld. Описание:
Meld - графическое средство просмотра различий и приложение слияния для рабочего стола GNOME. Он поддерживает разницу в 2 и 3 файла, рекурсивную разницу в каталогах, различает каталоги под управлением версиями (Bazaar, Codeville, CVS, Darcs, Fossil SCM, Git, Mercurial, Monotone, Subversion), а также возможность ручного и автоматического слияния
1) Веб-сайт:
http://meldmerge.org/
2) И если он находится в вашем списке репозиториев , вы можете установить его с помощью:
sudo apt-get update
sudo apt-get install meld
3) Это также в приложении Ubuntu Software.
Поскольку у вас больше .ogg, чем .flac, простой подход состоял бы в том, чтобы найти все имена *.ogg и проверить, какие из них не имеют соответствующего имени .flac. Что-то вроде:
find DIRECTORY02/ -type f -name '*ogg' -print0 |
while IFS= read -r -d '' f; do
flac="${f//.ogg/.flac}";
flac="${flac##DIRECTORY02/}";
[[ -e DIRECTORY01/"$flac" ]] ||
printf "Missing file: %s\n" "$flac";
done
Вот то же самое, что и прокомментированный скрипт:
#!/bin/bash
## find all files in DIRECTORY02/ whose name ends in .ogg
find DIRECTORY02/ -type f -name '*.ogg' -print0 |
## Iterate over the results of the find command, saving
## each file as "$f". The fancy -print0 and read -d '' stuff
## is needed to deal with filenames that can contain newlines.
while IFS= read -r -d '' f; do
## create the new $flac variable which is $f but with ".flac"
## instead of ".ogg"
flac="${f//.ogg/.flac}";
## remove the "DIRECTORY02/" from the $flac variable. If
## the "$f" variable was 'DIRECTORY02/artist - album/file.ogg'
## it is now 'artist - album/file.flac'.
flac="${flac##DIRECTORY02/}";
## Check whether the file exists in the same subdirectory under
## DIRECTORY01
[[ -e DIRECTORY01/"$flac" ]] ||
## If it doesn't, print
printf "Missing file: %s\n" "$flac";
done