cat /etc/zabbix/zabbix_proxy.conf | grep -v '#'
или еще 1-ин вариант (уберет пробелы):
cat /etc/zabbix/zabbix_agent.conf | grep -vE "(^#|^$)"
export https_proxy=http://srv-gw-proxy02:3128
export
Всего в Bash три таких символа: *
, ?
и [
. Звёздочка означает любое количество любых символов. Знак вопроса — один любой символ.
Например, строкаREADMEсоответствует следующим шаблонам:
*ME
READM?
*M?
R*M?
Квадратные скобки указывают набор символов в определённой позиции строки. Например,шаблон[cb]at.txt
соответствует файлам cat.txt
и bat.txt
. Вот вызов утилиты find
споиском по этому шаблону:
find . -name"[cb]at.txt"
find -path */doc/bash/*
-ipath
не чувствителен к регистру.find . -ipath */DOC/BASH/*
Поиск и удаление файлов старше 1095
дней
find /DATA/apps/logs/*/ -type f -mtime +1095 -exec rm -rf {} \;
Отобразить размер файлов старше 1094
дней
find /DATA/apps/logs/*/ -type f -mtime +1094 -exec ls -lh {} \;
mkdir -p test/{test1,test2}
или сразу несколько вложений в одной команде
mkdir -p test/{test1/test10,test3,test2,test30/{31,32,33}}
вывод будет:
test/
├── test1
│ └── test10
├── test2
├── test3
└── test30
├── 31
├── 32
└── 33
Скомбинировать несколько условий спомощью логического ИЛИ -o
или -or
. Если файлили каталог соответствует хотя быодному условию, он попадёт в вывод
find -name README -o -path*/doc/bash/*
Скомбинировать несколько условий спомощью логического И -a
или -and
. В вывод попадут только файлы и каталоги, удовлетворяющие всем условиям
find -name README -a -path*/doc/bash/*
Логическое отрицание (НЕ) !
или -not
последующего условия. В вывод попадут только файлы и каталоги, которые не удовлетворяют условию.
find -not -name README
find ! -name README
Условия утилиты find
можно группировать. Для этого используйте экранированные круг-лые скобки. Например, найдём файлы README
с путём */doc/*
или файлы LICENSE
с произвольным путём. Это сделает следующая команда:
find /\(-path */doc/* -name README\)-o -name LICENSE
Выполнить указанную -exec команда {} \;
команду надкаждым найденным объектом:
find -name README -type f -exec cp{} ~\;
Выполнить указанную команду -exec команда {} +
один раз над всеми найденными объектами. Команда получит всеобъекты на вход.
find -type d -exec cp -t{} +
Добавим к команде поиска действие -exec
. Оно вызывает утилиту cp
. Утилита копируетфайлы и каталоги в указанный путь. Первым параметром cp
принимает копируемый объект. Второй параметр — путь, куда копировать.
find / -path"*/doc/bash/*"-name"*.html"-exec cp{}~\;
Выведем содержимое каждого из найденных HTML файлов и подсчитаем количество строк в них.
С первой задачей справится утилита cat
. Утилита wc
подсчитает число строк. На вход wc
принимает имя файла для обработки. Команда вызова find
в этом случае выглядит так:
find / -path"*/doc/bash/*"-name"*.html"-exec cat{}\;-exec wc -l{}\;
Команда найдёт строку “free software” в файле README
grep "free software" /usr/share/doc/bash/README
grep "free software" ~/*
Поиск в каталоге включая скрытые файлы но без подкаталогов
.
grep -r "free software".
Все тоже самое что и выше только включая подкаталоги
grep -R "free software".
Список файлов, в которых встречается фраза. В обычномрежиме утилита grep выводит все вхождения искомой фразы. Этот вывод сейчас не нужен.Уберём его опцией -l
. Например, так
grep -Rl "free software".
Cписок файлов, где фразы "free software” нет
grep -RL"free software".
Поиск не закоментированных строк c исключением пустых строк:
grep -vE '^\s*(#|$)' filename
-v
: Инвертирует поиск, чтобы выводились строки, не соответствующие шаблону.
-E
: Включает расширенные регулярные выражения.
Поиск и замена в файле определенной строки
sed -i --follow-symlinks 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config