Mi piacerebbe sapere come utilizzare il commento multi linea in awk. A partire da ora ho usato # per commentare una singola riga. Qualcuno potrebbe guidarmi riguardo a questo. Grazie.Commento multilinea in awk
risposta
Non c'è un commento multilinea in AWK, ma è possibile simularlo se necessario. Qui è una tecnica che funziona, almeno in GNU AWK (gawk
):
#!/usr/bin/awk -f
0 {
You can use
0 to cause
a block to
not execute
or be parsed
}
{
print $2, $1, $3
if (0) {
You can use if (0)
in a similar manner
inside a block
}
sum += $4
}
0 && /pattern/ { # prepend "0 &&" to other conditions to turn off a block
print
}
E 'bello essere in grado di avere commenti su più righe per commentare le sezioni di codice durante il debug. Non utilizzerei necessariamente questa tecnica per la documentazione poiché potrebbe non essere garantito che il testo non di codice non venga analizzato per errori di sintassi.
Sembra funzionare anche in mawk
.
Questo è bello sapere ma non funziona se il "commento" contiene cose come 'don't'. In altre parole, il "commento" non viene analizzato per la grammatica, ma deve essere un flusso di token awk lessicamente corretto. – lhf
@lhf: true, ha i suoi limiti. Questo è uno dei motivi per cui ho messo in guardia dall'utilizzarlo per la documentazione (anche se non l'ho detto). –
non vi è alcun commento su più righe in awk – NARKOZ
Quindi qualsiasi suggerimento su come rendere elegante il codice – NandaKumar
@NandaKumar "rendere elegante il codice" è piuttosto ampio. Il mio suggerimento sarebbe quello di dare un'occhiata ad alcuni più grandi programmi AWK in libri/riferimenti e utilizzare quelli per guidare l'utente. Ho questo http://www.amazon.com/The-AWK-Programming-Language-Alfred/dp/020107981X, e potrei ottenere questo http://www.amazon.com/sed-awk-Edition-Dale- Dougherty/dp/1.565.922,255 mila. Anche questo sembra promettente: http://www.amazon.com/Effective-awk-Programming-3rd-Edition/dp/0596000707. Ho imparato molto dallo studio del codice di altri (non solo con AWK). E infatti lo faccio tutti i giorni qui su SO :) – Levon