Esiste un tutorial di base per grep, awk e sed? [chiuso]


95

Sono stato un utente Linux per un po 'e ho una comprensione abbastanza decente della maggior parte delle utilità comuni della riga di comando. Tuttavia, quelli che vengono superiore e superiore sempre in relazione alla programmazione sono grep, awke sed.

L'unica cosa per cui ho usato grep è il piping delle cose in esso per trovare i file nei file di registro, l'output di psecc. Che non ho usato awko sedaffatto. Esistono buoni tutorial per queste utility?



Ho sempre rimandato l'apprendimento della regex perché mi dico che un giorno lo imparerò leggendo i documenti originali di Kleene sulla logica che hanno inventato il concetto prima che diventasse ampiamente utilizzato nei computer.
ixtmixilix,

Sono d'accordo con gvkv: se hai bisogno di imparare questi, potresti anche imparare il Perl, fa cosa grep, sede awkfa (e quasi allo stesso modo) e molto di più in cima.
reinierpost,

Mi piace sempre thegeekstuff.com. Tagliano direttamente agli esempi, al contrario della solita manpagina che sembra il 90% delle note.
Isomorfismi,

Risposte:




11

Ho scritto un libro su sed- Guida definitiva a sed — che include un tutorial. Coprire integralmente sed, nonché comandi correlati come grep, tr, heade tail. Copre anche le espressioni regolari molto meglio di quanto abbia visto altrove.

Concordo con gli altri sul fatto che una solida comprensione delle espressioni regolari sia molto importante. Concordo anche sul fatto che sedè meglio usato per compiti più semplici, gli script più complessi diventano rapidamente oscuri.

Non sono d'accordo che awksia obsoleto, al contrario. È come molte cose unix (es. vi), C'è una curva di apprendimento, ma ne vale la pena.

Non sono d'accordo con il suggerimento da utilizzare awkal posto di grep. Non ha senso nella mia esperienza. grepè così grande e semplice.


Secondo grep, non prendete il trattore sull'autostrada senza pedaggio se potete aiutarlo. Ed è anche un bel libro, grazie.
Mikeserv,

3

Il ricettario sulle espressioni regolari pubblicato da O'Rielly sarebbe sufficiente per portarti ovunque in qualsiasi lingua che li usi.


3

Gli autori del libro sono Kernigan e Pike, il titolo è qualcosa come "The Unix Programming Environment".

Il libro da cui ho effettivamente imparato si intitolava "An Introduction to Berkely Unix".


2

Se vuoi imparare uno di questi 3 (grep, sed e awk), puoi semplicemente imparare awk / gawk. . awk può svolgere le funzioni di grep e sed, ovvero usare regex per cercare / sostituire testo, e molto altro ancora perché è anche un linguaggio di programmazione. Se impari gli aspetti interni di gawk / awk, non dovrai usare grep / sed / wc / cut ecc. Solo uno strumento lo fa.


oh, a proposito, non abbiamo nemmeno bisogno di awk, puoi semplicemente usare g++ -x c++ - -o /tmp/prog && /tmp/proge digitare i tuoi comandi. Uno strumento per dominarli tutti! :-)
Lie Ryan,

1
chi ha bisogno di un compilatore quando puoi semplicemente scrivere il binario direttamente in un file? lo farà il gatto, o se ti senti pigro.
Cas

1

A mio avviso, awk è più o meno obsoleto (tuttavia, altri sosterranno con forza questa opinione), la maggior parte delle persone che conosco oggigiorno usano invece un linguaggio di script come Perl o oggi spesso Python per manipolazione del testo avanzata. sed è ottimo per compiti di manipolazione del testo più semplici, lo uso sempre. L'ho imparato principalmente guardando sed one-liner come quelli su http://sed.sourceforge.net/sed1line.txt . Per quanto riguarda grep: Beh, in pratica, vuoi ottenere una solida comprensione delle espressioni regolari (necessaria anche per sed). Qui ho appena usato i manuali di texinfo.


10
awk è ancora molto utile per manipolare i dati inviati da altri comandi. Per un semplice utilizzo da riga di comando, non lo considero ancora obsoleto.
MaQleod,

Inoltre dovrebbe essere disponibile su molti sistemi a causa di POSIX.
echox,

1
La maggior parte degli AWK avanzati è probabilmente meglio eseguita con perl o python o altro, ma le cose semplici sono belle da fare solo con Awk.
user455,

1
Awk è comunque utile per capire le varie risposte che potresti trovare online quando cerchi di risolvere un problema. Troverai spesso esempi online che usano dichiarazioni awk come awk '{print $3}'.
Steven D,

1
A lavoro ea casa uso awk più spesso di sed. Niente può battere impacciato a dati tabulari fissi, come l' dpkg -loutput. Non farei nulla di complicato da remoto, ma sarei uno strumento corto senza awk. Non posso dire lo stesso per linguaggi di programmazione più generali, per quanto mi piacciano alcuni di essi.
JM Becker,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.