Неоптимальный ответ :Вместо того, чтобы передавать вывод find
в grep
, вы можете просто запустить
find. -type f -exec grep 'research' {} '+'
и вуаля, одна команда вместо двух !
объяснение:
find. -type f
найти все обычные файлы в пределах.
-exec grep 'research'
grep 'исследование'
{}
в найденном имени файла
'+'
используйте одну команду для всех имен файлов, а не один раз для каждого имени файла.
Nb :с ';'
это было бы один раз для каждого имени файла.
Помимо этого, если вы используете его для обработки исходного кода, вы можете заглянуть в ack
, который создан для простого поиска фрагментов кода.
Редактировать:
Вы можете немного расширить это исследование. Во-первых, вы можете использовать переключатель -name ''
для find
для поиска файлов с определенным шаблоном именования.
Например:
только файлы, соответствующие логам:-name '*.log'
только файлы, которые соответствуют заголовкам c, но вы не можете придерживаться верхнего или нижнего регистра для ваших расширений имен файлов:-iname *.c
Nb :Как и для grep
и ack
, переключатель -i
означает нечувствительность к регистру в этом случае.
В этом случае grep будет отображаться без цвета и без номеров строк.
Вы можете изменить это с помощью переключателей --color
и -n
(Цвет и номера строк в файлах соответственно ).
В итоге у вас может получиться что-то вроде:
find. -name '*.log' -type f -exec grep --color -n 'pattern' {} '+'
например
$ find. -name '*.c' -type f -exec grep -n 'hello' {} '+'
./test2/target.c:1:hello
Более простым способом настройки/восстановления сети на безголовом сервере может быть использование интерактивного текстового -меню «nmtui».
$ yum install NetworkManager-tui
$ nmtui
┌───────────────────────────┐
│ │
│ ┌─────────────┐ │
│ │ Ethernet ↑ │ <Add> │
│ │ enp4s0 ▒ │ │
│ │ Bridge ▒ │ <Edit...> │
│ │ virbr0 ▮ │ │
│ │ cni0 ▒ │ <Delete> │
│ │ br0 ▒ │ │
│ │ ▒ │ │
│ │ ▒ │ │
│ │ ▒ │ │
│ │ ▒ │ │
│ │ ↓ │ <Back> │
│ └─────────────┘ │
│ │
└───────────────────────────┘