it-swarm.it

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

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 emergono e si ripetono in relazione alla programmazione sono grep, awk e 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 ps ecc. Non ho usato awk o sed affatto. Esistono buoni tutorial per queste utility?

98
Macha

AWK è particolarmente adatto per i dati tabulari e presenta una curva di apprendimento inferiore rispetto ad alcune alternative.

AWK: A Tutorial and Introduction

An AWK Primer ( alt link )

RegularExpressions.info

sed tutorial

tutorial grep

info sed, info grep e info awk o info gawk

Il libro O'Reilly sed and awk è ottimo per er sed e awk.

19
user591

Ho scritto un libro su sedGuida definitiva a sed - che include un tutorial. Copre completamente sed, così come i comandi correlati come grep, tr, head e tail. Copre anche completamente 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 sia usato al meglio per compiti più semplici, gli script più complessi diventano rapidamente oscuri.

Non sono d'accordo sul fatto che awk sia obsoleto, al contrario. È come molte cose unix (ad esempio vi), c'è una curva di apprendimento, ma ne vale la pena.

Non sono d'accordo con il suggerimento di utilizzare awk al posto di grep. Non ha senso nella mia esperienza. grep è fantastico e semplice.

11
Daniel Goldman

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

3
ixtmixilix

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

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

3
HandyGandy

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 avrai bisogno di usare grep/sed/wc/cut ecc. Solo uno strumento lo fa.

2
user1606

Secondo me, 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 la manipolazione avanzata del testo . sed è ottimo per compiti di manipolazione del testo più semplici, lo uso sempre. L'ho imparato principalmente guardando sed one-liners come quelli su http://sed.sourceforge.net/sed1line.txt =. Per quanto riguarda grep: Beh, in pratica vuoi avere una solida comprensione delle espressioni regolari (necessarie anche per sed). Qui ho usato solo i manuali di texinfo.

1
fschmitt