2012-01-29 29 views
6

He estado yendo a través de un curso en línea UNIX y me he encontrado con esta pregunta a la que estoy atascado. Agradecería cualquier ayuda!extrayendo la primera línea del archivo usando el comando awk

Se le proporciona un conjunto de archivos, cada uno de los cuales contiene datos personales de una persona. Cada archivo se presenta en el siguiente formato, con un archivo por cada individuo:

name:Niko Tanaka 
age:41 
occupation:Doctor 

sé que la respuesta tiene que ser en la forma:

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

'awk NR == 1', o tiene que imprimir sólo el nombre? 'awk -F: 'NR == 1 {print $ 2}'' – Kevin

+2

Y en caso de que el archivo sea muy grande, puede ser bueno hacer 'awk 'NR == 1 {print; exit} ''para que el archivo ya no se lea después de la primera línea. – fedorqui

Respuesta

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

Lo que está en el interior de / / son expresiones regulares. En este caso, solo quiere hacer coincidir en la línea que contiene 'nombre'.

16
awk 'NR==1' filename 

Resultado

name:Niko Tanaka 
Cuestiones relacionadas