Regular
[
Пред. ] [ Содержание ] [
След. ]
Регулярные Выражения
Выводит информацию между знаками (
")
-F-задаёт их
iwconfig wlan0 |awk -F\" '/ ESSID:/ {print $2}' -=5GHz=-
grep -oe 'BSS.\([0-9a-f]\{2\}:\)\{5\}[0-9a-f]\{2\}' BSS 88:e3:ab:7b:a2:e0
BSS c8:3a:35:a2:4a:08
BSS c4:6e:1f:fc:6f:3c
BSS f4:f2:6d:4c:b0:04
Подстановка к числовой переменной спереди нули.
printf "%05d" $1 где $1 - твоё число
На выходе будет всегда 5 символов, а в конце - твоё число.
То есть если $1 = 5, то получишь 00005, а если $1 = 103, то 00103
Вставляем строки перед строкой шаблона 'http' в файле 101ru.m3u
sed -i '/http/ i\#EXTVLCOPT:http-user-agent=Mozilla\/5.0' 101ru.m3u Добавляем префикс к выводу $ echo ", world!" | echo "Hello$(cat -)"
Hello, world!
Выводит 3 последние строки $ tail -3 /etc/passwd
Начиная с 5 позиции вывести 3 строки $ ls | tail -n +5 | head -n 3
Смотрим конфиги без комментариев $ cat config_filename | grep -vE "^#|^$"
Отфильтровать строки без учёта регистра, содержащие одно из слов one, two, three: $ cat file | grep -iE "(one|two|three)"
Убрать пустые строки в файле grep -v '^$' input.txt > output.txt выводит содержимое в кавычках echo 8. ""Ребята, напишите мне письмо"" | awk '{ print }' 1. Ребята, напишите мне письмо
Ключ -c "complement" заменит символы в соответствии с шаблоном Этот ключ воздействует только на те символы, которые НЕ соответствуют заданному шаблону.
echo "acfdeb123" | tr -c b-d + +c+d+b++++
Ключ --squeeze-repeats (-s) удалит все повторяющиеся последовательности символов Может использоваться для удаления лишних пробельных символов.
echo "XXXXX" | tr --squeeze-repeats 'X' X
$
tr "A-Z" "*" <filename или
$
tr A-Z \* <filename заменяет все символы верхнего регистра в filename на звездочки (вывод производится на stdout). В некоторых системах этот вариант может оказаться неработоспособным, тогда попробуйте
$
tr A-Z '[]'**
Ключ -d удаляет символы из заданного диапазона. echo "abcdef" | tr -d b-d # aef Удалит все цифровые символы из файла "filename". tr -d 0-9 <filename -c, -C, --complement дополняют
use the complement of SET1
использовать состав НАБОРА1
-d, --delete удалить delete characters in SET1, do not translate
удаление символов в НАБОР1, не переводят
-s, --squeeze-repeats выжать-повторяет replace each input sequence of a repeated character that is listed in SET1 with a single occurrence of that character
заменить каждый входной последовательности повторяющихся символов, перечисленных в НАБОР1 с одного вхождения этого символа
-t, --truncate-set1 усечение-набор1 first truncate SET1 to length of SET2
начала сократить НАБОР1 НАБОР2 длине
[:alnum:] all letters and digits
все буквы и цифры
[:alpha:] all letters
все буквы
[:blank:] all horizontal whitespace
все горизонтальные пробельные символы
[:cntrl:] all control characters
все управляющие символы
[:digit:] all digits
все цифры
[:graph:] all printable characters, not including space
все печатаемые символы, не включая пробел
[:lower:] all lower case letters
все строчные буквы
[:print:] all printable characters, including
space все печатные символы, включая пробел
[:punct:] all punctuation characters
все знаки препинания
[:space:] all horizontal or vertical whitespace
все горизонтальные или вертикальные пробелы
[:upper:] all upper case letters
все буквы верхнего регистра
[:xdigit:] all hexadecimal digits
все hex значения [=CHAR=] all characters which are equivalent to CHAR все шестнадцатеричные цифры Чара все символы, которые эквивалентны в char
Выражение "[0-9]\{5\}" -- в точности соответствует подстроке из пяти десятичных цифр (символов из диапазона от 0 до 9, включительно).
echo 2222 | gawk --re-interval '/2{3}/' ### выводит строку с цифрами 2 в количестве 3-х штук подряд ######
2222 -------------------------------------------------------SED-----------------------------------------------
s/что_искать/на_что_заменять/ заменит в первой строке все подчеркивания на пробелы, sed "1s/_/ /g" удалит все строки, начинающиеся с «a» sed "/^a/d" удалит с первой по вторую и еще четвертую $
sed -n -e 1,2p -e 4p somefile.txt извлечение нескольких строк, со второй по четвертую строки $
sed -n 2,4p somefile.txt $
sed '2,4!d' somefile.txt cat index.html | grep colTemp | sed 's/...span.*//'|sed 's/.*Temp.../Температура /' cat -n /home/android/.bash_history | uniq -c -n нумерует строки -c выводит количество повторов строк погода с яндекса для коньков
curl -s
https://pogoda.yandex.ru/nevinnomissk/details |sed 's/title=./\n/g'|sed 's/item-dayname">/\nДни недели /' >pogodaya
Сделать срез до конца значения: 1 $
a="123456789";echo ${a:3} 2 456789
Или на фиксированную длину, например — два символа после 3-го: 1 $
echo ${a:3:2} 2 45
Можно выполнить замену только попадающей под ШАБЛОН части: 1 $
a="111222" 2 $
echo ${a//1/3} 3 333222
При использовании одного слеша «/» — будет выполнена замена только первого совпадения: 1 $
a="111222" 2 $ e
cho ${a/1/3} 3 311222
grep -c Вывести только общее число строк
-i Не учитывать регистр букв
-n Перед каждой строкой выводить ее номер
-v Учитывать только строки, не соответствующие образцу
Найти строки, содержащие сочетание букв ne: $ grep -n
ne test
1:one
9:nine
Найти строки, где букве o предшествует хотя бы один символ: $ egrep '.+
o' test
t
wo four
Найти строки, где стоящей в конце строки букве o предшествует хотя бы один символ: $ grep '.*
o$' test
t
wo 1 как искать несколько различных строк iwlist wlan0 scan |grep -e "Address:" -e "ESSID:" -e "Quality" Cell 01 -
Address: 2C:56:DC:8D:6F:04 ESSID:"ASUSkombo" Quality=0/100 Signal level=-83 dBm http://blog.debian-help.ru/2015/03/grep-poisk-v-linux-primeri 2 как искать несколько различных строк iwlist wlan0 scan |grep -w 'Address\|ESSID\| Quality' Cell 01 -
Address: 00:0B:2B:51:51:0A
Quality=32/70 Signal level=-78 dBm
ESSID:"-=512=-"
Инвертный поиск будут выведены все строки, кроме имеющих вхождение указанного слова и для этого используется параметр -v:
grep -v 'word' filename Можно исключить что-либо из вывода поиска применив конвейер:
grep 'first_word' filename | grep -v 'second_word' Вывод строк перед и после найденного вхождения Для вывода нескольких строк перед вхождением используется параметры
-A, а после вождения
-B.
К примеру, чтобы вывести
10 строк перед и
5 после найденного вхождения используйте команду:
grep -A 5 -B 10 'word' filename Удаление строк из файла sudo iw dev wlan0 scan|grep -oe 'BSS [0-9a-f][0-9a-f].*\|SSID.*\|Device name.*\|signal:.*' BSS c0:4a:00:9c:5c:56(on wlan0) signal: -77.00 dBm SSID: kozochka Device name: Wireless Router TL-WR841N BSS 30:5a:3a:a8:7a:c4(on wlan0) signal: -87.00 dBm SSID: Oleg Device name: RT-N12VP
Содержание