Как перенести все файлы, соответствующие шаблону, в папку?

«Решение» - это не многократно запускать программы за пределами их требуемой среды, не проверяя их статус выхода. dialog, whiptail и т. д. предназначены для терминалов, поэтому они, конечно, требуют установки TERM. Поэтому вы должны запускать эти сценарии в терминале. То же самое произошло бы с вашим «продвинутым» zenity, yad и т. Д., Если он будет работать без дисплея X11 / Wayland.

В вашем скрипте вы проверяете вывод dialog, в то время как вывод ошибки перенаправления с помощью обычный мощность. Поэтому, когда диалог «сбой и ожоги» и печатает сообщение об ошибке, вы затем сравниваете вывод ошибки в своих условиях if! Зачем вам это делать?

1
задан 25 April 2018 в 01:36

3 ответа

Вы смешиваете синтаксис регулярного выражения (как используется grep) с шаблонами glob (как используется оболочкой).

В regex . означает любой отдельный символ, а * означает ноль или более повторений. Таким образом, grep 'NC022.*nii' совпадает с NC022 до nii с чем-либо (включая ничего) между ними.

Напротив, . является буквальным в globs оболочки, а сам * означает ноль или более символов , Таким образом, NC022.*nii сопоставляет NC022. с nii с чем-либо (включая ничего) между ними.

В частности, если вы пытаетесь сопоставить все файлы с расширением .nii, . находится в неправильном месте: вы хотите NC022*.nii, т. е.

mv NC022*.nii NC022/
4
ответ дан 22 May 2018 в 11:15

Вы смешиваете синтаксис регулярного выражения (как используется grep) с шаблонами glob (как используется оболочкой).

В regex . означает любой отдельный символ, а * означает ноль или более повторений. Таким образом, grep 'NC022.*nii' совпадает с NC022 до nii с чем-либо (включая ничего) между ними.

Напротив, . является буквальным в globs оболочки, а сам * означает ноль или более символов , Таким образом, NC022.*nii сопоставляет NC022. с nii с чем-либо (включая ничего) между ними.

В частности, если вы пытаетесь сопоставить все файлы с расширением .nii, . находится в неправильном месте: вы хотите NC022*.nii, т. е.

mv NC022*.nii NC022/
4
ответ дан 17 July 2018 в 16:12

Вы смешиваете синтаксис регулярного выражения (как используется grep) с шаблонами glob (как используется оболочкой).

В regex . означает любой отдельный символ, а * означает ноль или более повторений. Таким образом, grep 'NC022.*nii' совпадает с NC022 до nii с чем-либо (включая ничего) между ними.

Напротив, . является буквальным в globs оболочки, а сам * означает ноль или более символов , Таким образом, NC022.*nii сопоставляет NC022. с nii с чем-либо (включая ничего) между ними.

В частности, если вы пытаетесь сопоставить все файлы с расширением .nii, . находится в неправильном месте: вы хотите NC022*.nii, т. е.

mv NC022*.nii NC022/
4
ответ дан 23 July 2018 в 17:07

Другие вопросы по тегам:

Похожие вопросы: