Od jakiegoś czasu jestem użytkownikiem Linuksa i całkiem dobrze rozumiem większość popularnych narzędzi wiersza poleceń. Jednak te, które pojawią się i ponownie w odniesieniu do programowania są grep
, awk
i sed
.
Jedyną rzeczą, dla której użyłem grep, jest umieszczenie w nim danych w celu znalezienia plików w plikach dziennika, danych wyjściowych ps
itp., Których nie używałem awk
lub sed
wcale. Czy są jakieś dobre samouczki dotyczące tych narzędzi?
grep
,sed
iawk
zrobić (i niemal w taki sam sposób) i wiele więcej na wierzchu.man
strony, która wygląda na 90% przypisów.Odpowiedzi:
AWK szczególnie dobrze nadaje się do danych tabelarycznych i ma niższą krzywą uczenia się niż niektóre alternatywy.
AWK: samouczek i wprowadzenie
Podkład AWK ( alt link )
RegularExpressions.info
samouczek sed
samouczek grep
info sed
,info grep
Iinfo awk
czyinfo gawk
źródło
Książka O'Reilly sed i awk jest idealna dla tych, którzy lubią to.
źródło
Napisałem książkę na
sed
- Definitive Guide to sed - która zawiera samouczek. Obejmuje on w pełnised
, jak również związane z nimi polecenia, takie jakgrep
,tr
,head
itail
. Również w pełni obejmuje wyrażenia regularne znacznie lepiej niż gdzie indziej.Zgadzam się z innymi, że dobre zrozumienie wyrażeń regularnych jest bardzo ważne. Zgadzam się również, że
sed
najlepiej nadaje się do prostszych zadań, bardziej złożone skrypty szybko stają się niejasne.Nie zgadzam się, że
awk
jest przestarzałe, wręcz przeciwnie. Jest jak wiele uniksowych rzeczy (np.vi
), Istnieje krzywa uczenia się, ale warto.Nie zgadzam się z sugestią użycia
awk
zamiastgrep
. Z mojego doświadczenia nie ma to sensu.grep
jest takie świetne i proste.źródło
grep
rzecz - nie możesz wziąć traktora na autostradę, jeśli możesz pomóc. I to też całkiem niezła książka - dziękuję.Książka kucharska wyrażeń regularnych opublikowana przez O'Rielly wystarczy, aby zabrać Cię w dowolne miejsce, w którym się z nich korzysta.
źródło
Autorami książki są Kernigan, a Pike tytuł przypomina „The Unix Programming Environment”.
Książka, z której faktycznie się nauczyłam, nosiła tytuł „An Introduction to Berkely Unix”.
źródło
Jeśli chcesz nauczyć się jednego z tych 3 (grep, sed i awk), możesz po prostu nauczyć się awk / gawk. . awk może wykonywać funkcje grep i sed, tj. używać wyrażeń regularnych do wyszukiwania / zamiany tekstu, a także wiele więcej, ponieważ jest to również język programowania. Jeśli poznasz wewnętrzne funkcje gawk / awk, nie będziesz musiał używać grep / sed / wc / cut itp. Wystarczy jedno narzędzie.
źródło
g++ -x c++ - -o /tmp/prog && /tmp/prog
i wpisać swoje polecenia. Jedno narzędzie do rządzenia nimi wszystkimi! :-)Moim zdaniem awk jest mniej lub bardziej przestarzałe (jednak inni zdecydowanie będą się z nim sprzeczać), większość osób, które znam obecnie, zamiast tego używa jakiegoś języka skryptowego, takiego jak Perl, lub dziś często python do zaawansowanej manipulacji tekstem. sed jest świetny do prostszych zadań związanych z operowaniem tekstem, używam go cały czas. Nauczyłem się tego głównie, patrząc na sed one-liners, takie jak te na http://sed.sourceforge.net/sed1line.txt . Odnośnie grep: Cóż, zasadniczo chcesz dobrze zrozumieć wyrażenia regularne (potrzebne również dla sed). Właśnie użyłem instrukcji texinfo.
źródło
awk '{print $3}'
.dpkg -l
wyjściowe. Nie zrobiłbym w tym nic skomplikowanego, ale brakowało mi narzędzia bez awk. Nie mogę powiedzieć tego samego o bardziej ogólnych językach programowania, o ile lubię niektóre z nich.