Печать AWK regex шаблон

Это может сохранить неприятности для некоторых из вас.
Если вы когда-либо использовали Gedit, чтобы редактировать этот файл, по умолчанию будет создан копия этого файла.
Например, давайте предположим, что мы имеем случайность удаленного 'myfile.txt'.
В папке, которая используется для содержения файла, вы только что удалили, используйте эти команды, и вы восстановите копию оттуда:
LS | grep 'myfile.txt ~'
с небольшим количеством удачи вы найдете его, а затем:
CP 'MyFile.txt ~' 'myfile.txt'
Я восстановил файл, только сейчас, используя это метод. Удачи!

0
29.03.2015, 22:57
4 ответа

Попробуйте стандартное регулярное выражение (вместо Perl Regexps). Это будет печатать подходящие строки:

awk '/\[[[:digit:]]+\]/ { print }' maillog

для извлечения и распечатывания соответствующего значения внутри кронштейнов:

awk 'match($0,/\[[[:digit:]]+\]/) { print substr($0,RSTART+1,RLENGTH-2)}' maillog
5
28.01.2020, 02:13

Другой подход:

awk -F'[][]' 'NR>1{print $2}' maillog
7445
15674
3
28.01.2020, 02:13

Если вам нравится awk Следующий скрипт печатает каждое второе поле, если строка разделена на [] (это означает внутри него)

awk -F [][] '{for(i=2;i<=NF;i+=2)print $i}' maillog

, но сделать то же самое на GREP

grep -o '\[[^]]*\]' maillog
1
28.01.2020, 02:13

В зависимости от того, что вы хотите сопоставить

awk -F"[][]" '/postfix|spamd/{print $2}' maillog
0
28.01.2020, 02:13

Теги

Похожие вопросы