Работа с кодом в bash
Работа с кодом bash. Bash - язык программирования, большинство скриптов в ОС Unix написаны с применением именно этого языка.
Любой из них начинается строкой(Ша-банг):
#!/bin/bash
Оператор grep
Учимся искать используя GREP.
//Поиск без учета регистра слова
grep -i -w vivek /etc/passwd
//поиск слова vivek или raj
grep -E -i -w 'vivek|raj' /etc/passwd
//ищем строки которые начинаются со слова vivek
grep ^vivek /etc/passwd
//искать строки которые начитаются только с vivek (и не показывать vivek1 //vivek2 vivekgite)
grep -w ^vivek /etc/passwd
//Поиск строки заканчивающейся на foo:
grep 'foo$' filename
//Поиск строки содержащей только foo
grep '^foo$' filename
//А можем поискать пустые строки в файле
grep '^$' filename
Так же при использовании Grep можно использовать такие выражения.
[:alnum:] - посик буквенно-цифровых символов.
[:alpha:] - буквенных символов
[:blank:] - space и tab.
[:digit:] - цифры: '0 1 2 3 4 5 6 7 8 9'.
[:lower:] - прописные буквы: 'a b c d e f g h i j k l m n o p q r s t u v w x y z'.
[:space:] - пустые символы: tab, newline, vertical tab, form feed, carriage return, and space.
[:upper:] - заглавные буквы: 'A B C D E F G H I J K L M N O P Q R S T U V W X Y Z'.
//Поиск всех строк начинающихся с точки и цифры
grep '^\.[0-9]' filename
//поиск куска (части) строки
grep '192.168.1.254' /etc/hosts
WC
wc -- "word count", счетчик слов в файле или в потоке:
wc -w подсчитывает только слова.
wc -l подсчитывает только строки.
wc -c подсчитывает только символы.
wc -L возвращает длину наибольшей строки.
//найти и заменить
cat file|while read i; do echo ${i//ЧТО_МЕНЯЕМ\"\"/НА_ЧТО_МЕНЯЕМ"}; done > newfile; mv newfile file;
sed -i -e 's/ЧТО_МЕНЯЕМ/НА_ЧТО_МЕНЯЕМ/' file
perl -i -p -e 's/ЧТО_МЕНЯЕМ/НА_ЧТО_МЕНЯЕМ/' file
awk '/ЧТО_МЕНЯЕМ/{ print "НА_ЧТО_МЕНЯЕМ"} !/ЧТО_МЕНЯЕМ/{print $0}' file > newfile; mv newfile file....
#вставит содержимое из файла /file1 в 21+ строки файла /etc/nginx/nginx.conf
sed -i '20r /file1' /etc/nginx/nginx.conf
запишем в переменную str номер строки файла etc/nginx/nginx.conf которая содержит слово gzip_disable
str=$(grep -n gzip_disable /etc/nginx/nginx.conf | cut -d ':' -f1)
Операторы в языке Bash.
Предупреждение : Выглядит страшно непонятно, но тут очень полезная информация!
Cпасибо автору ОГРОМНОЕ!
Источник:
https://onedayadmin.sytes.net/bash-rabota-s-tekstom/
Конец!