cat /etc/zabbix/zabbix_proxy.conf | grep -v '#'
або ще один варіант (прибере прогалини):
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".
Список файлів, де фрази "free software" немає
grep -RL "free software".
Пошук та заміна у файлі певного рядка
sed -i --follow-symlinks's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config