Back to: find, grep, sed — пошук та обробка тексту
0
find, grep, sed — поиск и обработка текста
find — поиск файлов
# Найти файл по имени
find / -name "*.conf"
# Найти по типу (f=файл, d=директория)
find /etc -type f -name "*.conf"
# Найти изменённые за последние 24 часа
find /var/log -mtime -1
# Найти файлы больше 100MB
find / -size +100M
# Найти и удалить
find /tmp -name "*.tmp" -exec rm {} \;
# Найти по правам
find / -perm -4000 # SUID-файлы
grep — поиск текста
# Найти строку в файле
grep "error" /var/log/syslog
# Рекурсивно в директории
grep -r "Listen" /etc/apache2/
# Без учёта регистра
grep -i "ERROR" /var/log/syslog
# Показать номера строк
grep -n "error" file.txt
# Инвертировать (строки БЕЗ слова)
grep -v "error" file.txt
# Регулярные выражения
grep -E "^Error|Failed" /var/log/syslog
sed — потоковый редактор
# Заменить текст
sed "s/old/new/" file.txt
# Заменить глобально (все вхождения)
sed "s/old/new/g" file.txt
# Заменить в файле (in-place)
sed -i "s/old/new/g" file.txt
# Удалить строки с словом
sed "/error/d" file.txt
# Показать строки 5-10
sed -n "5,10p" file.txt
Практическое задание
- Найдите все .conf файлы в /etc:
find /etc -name "*.conf" | wc -l - Найдите слово «root» в /etc/passwd:
grep "root" /etc/passwd - Замените слово в файле:
echo "hello world" | sed "s/hello/privet/"


Добавить комментарий