Использование команды find с командой sh не работает

Синтаксическая ошибка в приведенном ниже

#e1ee5980-c54b-4b6e-82e2-3dbdcee1dd24   /mnt/store  btrfs   noatime                 0 0

1. Вы добавляете комментарий перед строкой, которую хотите удалить.(#--> хочу удалить)

2. Вам нужно добавить "UUID =" при запуске команды.

2
02.04.2020, 19:19
2 ответа

Если я правильно понял, все, что вам нужно, это:

find. -type f -name '*FW*' -exec grep -iEq 'chmod.*archive|archive.*chmod' {} \; -ls

Это будет grepдля вашего шаблона в каждом файле, найденном с помощью find, и, если grepбудет успешным, будет список файлов в формате, подобном ls -l.

5
28.04.2021, 23:18

В качестве альтернативы тому, что предложил @terdon, вы могли бы также использовать следующую команду:

grep -iErl 'chmod.*archive|archive.*chmod'. | grep FW

РЕДАКТИРОВАТЬ

Как указал @Kusalananda:

This would fail (give the wrong output) if you have matches in files located in directories that contain FW in their names.

Если настроить его для правильной работы, он станет менее читабельным. Предложенное @terdon решение является более благоприятным вариантом (и более эффективным -см. комментарий @tedron ).

Тем не менее вот исправленная версия:

grep -iErl 'chmod.*archive|archive.*chmod'. | grep -E '[^/]*FW[^/]*$'

1
28.04.2021, 23:18

Теги

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