Я был пользователем Linux некоторое время, и у меня есть довольно приличное понимание большинства распространенных утилит командной строки. Тем не менее, те , которые приходят и снова по отношению к составлению программ grep
, awk
и sed
.
Единственное, для чего я использовал grep - это добавление в него файлов для поиска файлов в лог-файлах, вывод ps
и т. Д. Я не использовал их вообще awk
или вообще не использовал sed
. Есть ли хорошие уроки для этих утилит?
grep
,sed
иawk
делает (и почти так же) и многое другое.man
страницы, которая выглядит как сноски на 90%.Ответы:
AWK особенно хорошо подходит для табличных данных и имеет более низкую кривую обучения, чем некоторые альтернативы.
AWK: учебник и введение
Учебник для начинающих AWK ( альтернативная ссылка )
RegularExpressions.info
учебник sed
учебник grep
info sed
,info grep
Иinfo awk
илиinfo gawk
источник
Книга О'Рейли « Сед и awk» отлично подходит для «Сед и нарек».
источник
Я написал книгу о
sed
- Полное руководство к СЭД -Вот включает в себя учебник. Она полностью покрываетsed
, а также связанные с ними команды , какgrep
,tr
,head
иtail
. Также полностью охватывает регулярные выражения гораздо лучше, чем я видел в другом месте.Я согласен с другими, что твердое понимание регулярных выражений очень важно. Я также согласен, что
sed
лучше использовать для более простых задач, более сложные сценарии быстро становятся неясными.Я не согласен с тем, что
awk
устарело, как раз наоборот. Это похоже на многие вещи Unix (например,vi
), есть кривая обучения, но оно того стоит.Я не согласен с предложением использовать
awk
вместоgrep
. Не имеет смысла в моем опыте.grep
это так здорово и просто.источник
grep
- я не буду брать трактор на автостраде, если сможешь помочь. И это тоже очень хорошая книга - спасибо.Поваренной книги регулярных выражений, опубликованной O'Rielly, будет достаточно, чтобы найти вас где угодно на любом языке, который их использует.
источник
Авторы книги - Керниган и Пайк, что-то вроде «Среда программирования Unix».
Книга, из которой я действительно узнал, называлась «Введение в Berkely Unix».
источник
Если вы хотите выучить один из этих трех (grep, sed и awk), вы можете просто выучить awk / gawk. , awk может выполнять функции grep и sed, то есть использовать регулярное выражение для поиска / замены текста, а также многое другое, потому что это также язык программирования. Если вы изучите внутреннюю часть gawk / awk, вам не нужно использовать grep / sed / wc / cut и т. Д. Это делает только один инструмент.
источник
g++ -x c++ - -o /tmp/prog && /tmp/prog
и вводить свои команды. Один инструмент, чтобы управлять ими всеми! :-)По моему мнению, awk более или менее устарел (однако другие будут настойчиво утверждать это мнение), большинство людей, которых я знаю в настоящее время, вместо этого используют некоторый язык сценариев, такой как perl, или сегодня часто python для продвинутых манипуляций с текстом. sed отлично подходит для более простых задач по обработке текста, я использую его постоянно. Я узнал об этом в основном, посмотрев на однострочники sed, такие как http://sed.sourceforge.net/sed1line.txt . Что касается grep: Ну, вы в основном хотите получить четкое представление о регулярных выражениях (также необходимых для sed). Я здесь только что использовал руководства texinfo.
источник
awk '{print $3}'
.dpkg -l
вывод. Я бы не стал делать ничего отдаленно сложного в этом, но я бы не стал использовать инструмент без awk. Я не могу сказать то же самое для более общих языков программирования, так как мне нравятся некоторые из них.