2012-01-29 16 views
6

Sto attraversando un corso online UNIX e ho trovato questa domanda su cui sono bloccato. Gradirei qualsiasi aiuto!estraendo la prima riga dal file utilizzando il comando awk

Viene fornita una serie di file ciascuno dei quali contiene dettagli personali su un individuo. Ogni file è disposto nel seguente formato, con un file per ogni individuo:

name:Niko Tanaka 
age:41 
occupation:Doctor 

So che la risposta deve essere nella forma:

n=$(awk -F: ' / /{print }' filename) 
+6

'awk NR == 1', o avete di stampare solo il nome? 'awk -F: 'NR == 1 {print $ 2}'' – Kevin

+2

E nel caso in cui il file sia molto grande, può essere utile fare 'awk 'NR == 1 {print; exit} '' quindi il file non viene più letto dopo la prima riga. – fedorqui

risposta

4
n=$(awk -F: '/name/{print $2}' infile) 

Tutto ciò che è dentro / / sono espressioni regolari. In questo caso devi solo abbinare sulla linea che contiene il 'nome'.

16
awk 'NR==1' filename 

Risultato

name:Niko Tanaka 
Problemi correlati