Недавно был установлен новый/чистый с 16.04 (до 20.04), где я мог использовать приложение для сканирования документов, чтобы управлять моим сканером документов Brother.
Я пытаюсь использовать приложение (Gnome) Document Scanner на 20.04 и говорит: "Сканеры не обнаружены".
Возможно, сканер находится в другой подсети, но в разделе "Настройки" не удается вручную указать IP-адрес сканера.
-121--901194-У меня есть несколько файлов (текстовый файл) в папке, как ниже, где первый файл содержит некоторые пути в виде строки, а другой с путем + имя _ файла.
File1:
# pwd
/root/test
# cat file1.txt
/abc/bce/12345/input/part3
/abc/bce/12345/input/part3/err
/abc/bce/34563/input
/abc/bce/34563/input/part1
/abc/bce/34563/input/part3/wrk
/abc/bce/11198/input/VII
/abc/bce/11198/input/VII/err
/abc/bce/11198/input/VII/part3
/abc/bce/11198/input/VII/part3/err
#
File2:
# pwd
/root/test/test
# cat file2.txt
/abc/bce/12345/input/part3/AIR9905.txt--20210421--
/abc/bce/12345/input/part3/AIR9923.txt--20210315--
/abc/bce/12345/input/part3/err/AIR9950.txt--20200512--
#
File3:
# pwd
/root/test/test
# cat file3.txt
/abc/bce/12345/input/part3/err/AIR1034.txt--20210110--
/abc/bce/34563/input/part1/AIR3426.txt--20200420--
/abc/bce/11198/input/VII/part3/err/V.AIR7650.txt--20170625--
#
Текущие выходные данные:
test/file2.txt:/abc/bce/12345/input/part3/AIR9905.txt--20210421--
test/file2.txt:/abc/bce/12345/input/part3/AIR9923.txt--20210315--
test/file2.txt:/abc/bce/12345/input/part3/err/AIR9950.txt--20200512--
test/file3.txt:/abc/bce/12345/input/part3/err/AIR1034.txt--20210110--
Ожидаемые выходные данные:
test/file2.txt:/abc/bce/12345/input/part3/AIR9905.txt--20210421--
test/file2.txt:/abc/bce/12345/input/part3/AIR9923.txt--20210315--
Я использую grep -rHw "/abc/bce/12345/input/part3 "test/
для сопоставления строки из file1 и извлечения их информации из file2, file3,.... так далее. Однако проблема заключается в том, что когда я беру 1-ю строку из file1 и пытаюсь получить путь + имя _ файла, он берет все подобные строки из file2, file3 и так далее. Но я хочу получить строки в file2.txt, file3.txt,... (a) содержат строку "/abc/bce/12345/input/part3 "+ добавленную строку (имена файлов), но (b) не содержат другую строку "/abc/bce/12345/input/part3/err".
I don't know how I can do that when file1 is being compared with multiple files in a continuous manner. I need a generalized solution for all cases. Please let me know if there are any other ways to get this done through the shell script.
find . -type f -name 'file[2-3].txt' -exec grep -P '/abc/bce/12345/input/part3/(?!err)' {} \;
Это называется отрицательным прогнозом (?!)
grep -Pr '/abc/bce/12345/input/part3/(?!err)' test/
Если вы хотите использовать file1.txt в качестве списка шаблонов:
grep -e err$ test/file1.txt | grep --include='file[2-3].txt' -vrFf - test/test