Небольшая подборка моих команд в bash, которыми регулярно пользуюсь. Не претендую на уникальность и идеальный код. Просто беру примеры из своих шпаргалок. Специально ничего не оптимизировал. Если кто знает более удачные реализации того же функционала, делитесь в комментариях.
Удаляем дубли строк (для анализа логов помогает):awk '!seen[$0]++' file.txt > file_new.txt
Вывести строки, начиная с третьей (в костылях с мониторингом помогает):awk 'NR > 3' file.txt
Вырезаем первую и последнюю строки (тоже самое, для мониторинга обычно надо):cat file.txt | awk 'NR > 1' | head -n-1
Выполняем команду cat file.txt 5 раз (в консоли пригождается):for n in {1..5}; do cat file.txt; done
Удаление последнего или двух последних символов в строках (какой-то мусор в строках удобно убирать):sed 's/.$//' file.txt
sed 's/..$//' file.txt
Удаление первого или двух первых символов в строках (то же самое):sed 's/^.//' file.txt
sed 's/^..//' file.txt
Находим все строки с hello=какое-то значение и меняем на hello=1000:cat file.txt | sed 's/^hello=.*/hello=1000/g' > file_new.txt
Находим все строки с admin: и удаляем их (часто пригождалось, когда менял права доступа на линуксовых шарах, предварительн выгрузив их):sed '/admin:/d' file.acl > file_new.acl
Заменяем все вхождения строки search на replace:sed 's/search/replace/g' file.txt > file_new.txt
Удаляем все пробелы и символы табуляции в начале каждой строки файла (помогает чистить конфиги):sed 's/^[ \t]*//' extensions.conf > extensions.conf.new
Удаляем строки, где знак комментария ; стоит в начале строки (то же самое, помогает чистить конфиги, особенно астериска):sed '/^;/d' sip.conf
grep -E -v ';|^$' php.ini
Удаляем пустые строки:sed '/^$/d' file.txt
Заменить рукурсивно текст во всех файлах:grep 'надо поменять' -P -R -I -l * | xargs sed -i 's/надо_поменять/меняем_на_это/g'
Считаем количество процессов nodejs:ps ax | grep "nodejs" | wc -l
Считаем количество процессов в системе и выводим 5, которые запустили больше всего экземпляров:ps -ef | awk '{ print $8 }' | sort -n | uniq -c | sort -n | tail -5
Когда уже стал составлять пост понял, что получилась какая-то каша. Надо было на категории разбить, но мне стало лень это делать. Просто прошелся про всем записям и выбрал то, что показалось наиболее универсальным и актуальным для самых популярных задач.
Рекомендую забрать в закладки. Никогда заранее не знаешь, где и что пригодится. Я все записываю. Bash по-моему невозможно выучить, постоянно все по своим записям собираю. Понятно, что с опытом это становится проще. Кто-то может и пишет по памяти, но точно не я. Списываю обычно.
Написал и сам себе в закладки добавил, чтобы проше найти было 😎
#bash
>>Click here to continue<<
