Чи є базовий підручник з grep, awk та sed? [зачинено]


95

Я деякий час був користувачем Linux і досить пристойно розумію більшість загальних утиліт командного рядка. Тим НЕ менше, ті , які приходять і знову по відношенню до складання програм grep, awkі sed.

Про єдине, для чого я використовував grep, - це вставляти в нього речі, щоб знайти файли у файлах журналів, вихідні дані psтощо. Я не використовував awkабо sedвзагалі не використовував . Чи є хороші підручники для цих утиліт?



Я завжди відкладав регекс у навчанні, тому що я кажу собі, що одного разу навчатимусь його, читаючи оригінальні статті Kleene з логіки, які винайшли цю концепцію до того, як вона стала широко використовуватися в комп'ютерах.
ixtmixilix

Я погоджуюсь з gvkv: якщо вам потрібно навчитися цим, ви також можете навчитися Perl, він робить що grep, sedі awkробити (і майже таким же чином) і багато іншого на вершині.
reinierpost

Мені завжди подобається thegeekstuff.com. Вони наводяться прямо на прикладах, на відміну від звичайної manсторінки, яка виглядає як виноски на 90%.
ізоморфізми

Відповіді:



19

O'Reilly sed та awk книга чудово підходить для er sed та awk.


11

Я написав книгу на тему sed- Постійний посібник по седу - що включає підручник. Вона повністю покриває sed, а також пов'язані з ними команди , як grep, tr, headі tail. Також повністю охоплює регулярні вирази набагато краще, ніж я бачив деінде.

Я погоджуюся з іншими, що міцне розуміння регулярних виразів дуже важливо. Я також погоджуюся, що sedнайкраще використовувати для більш простих завдань, а складніші сценарії швидко стають незрозумілими.

Я не згоден, що awkце застаріло, якраз навпаки. Це як у багатьох речах Unix (наприклад, vi), є крива навчання, але воно того варте.

Я не згоден з пропозицією використовувати awkзамість grep. Не має сенсу в моєму досвіді. grepтака велика і проста.


Друга grepріч - ви не берете трактор на автостраді, якщо можете допомогти. І його досить непогана книга теж - дякую.
mikeserv

3

Кулінарна книга «Регулярні вислови», опублікована O'Rielly, була б достатньою для того, щоб передати вас будь-де на будь-якій мові, яка їх використовує.


3

Автори книги - Керніган і Пайк, назва - щось на кшталт "Середовище програмування Unix".

Книга, з якої я насправді дізналася, називалася "Вступ до Берклі Унікса".


2

Якщо ви хочете навчитися одному з цих 3 (grep, sed і awk), ви можете просто навчитися awk / gawk. . awk може виконувати функції grep і sed, тобто використовувати регекс для пошуку / заміни тексту, а також набагато більше, оскільки це також мова програмування. Якщо ви навчитесь внутрішнім сторонам gawk / awk, вам не потрібно буде використовувати grep / sed / wc / cut тощо. Це робить лише один інструмент.


о, btw, нам навіть не потрібен awk, ви можете просто використовувати g++ -x c++ - -o /tmp/prog && /tmp/progта вводити команди. Один інструмент, щоб керувати ними всіма! :-)
Лі Раян,

1
кому потрібен компілятор, коли ви можете просто записати двійковий файл прямо у файл? кішка зробить, або ед, якщо вам лінь.
cas

1

На мою думку, awk є більш-менш застарілим (однак, інші будуть рішуче заперечувати цю думку), більшість людей, яких я знаю зараз, натомість використовують мову скриптів на зразок perl або сьогодні часто python для вдосконалення тексту. sed відмінно підходить для більш простих завдань з обробки тексту, я використовую його постійно. Я дізнався це, головним чином, переглянувши одноразові седи, як на http://sed.sourceforge.net/sed1line.txt . Щодо grep: Ну, ви в основному хочете зрозуміти регулярні вирази (також потрібні для sed). Я тут просто користувався текстовими посібниками.


10
awk все ще дуже корисний для маніпулювання даними, що передаються з інших команд. Для простого використання командного рядка я ще не вважав би його застарілим.
MaQleod

Крім того, він повинен бути доступний у багатьох системах через POSIX.
ехокс

1
Більшість "просунутих AWK", ймовірно, краще робити з perl або python або будь-яким іншим, але прості речі приємно робити просто з awk.
user455

1
Awk все ще корисно знати, щоб зрозуміти різні відповіді, які ви можете знайти в Інтернеті, намагаючись вирішити проблему. Ви часто знайдете в Інтернеті приклади, які використовують на зразок заяви awk awk '{print $3}'.
Стівен Д

1
На роботі та вдома я використовую awk частіше, ніж sed. Ніщо не може перемогти awk за фіксованими табличними даними, як dpkg -lвихід. Я б нічого не робив із цим складним, але я би короткий інструмент без пробу. Я не можу сказати те саме для більш загальних мов програмування, наскільки мені подобаються деякі з них.
JM Becker
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.