2012-01-29 24 views
6

Przeszedłem przez Internetowy kurs UNIX i natknąłem się na to pytanie, na którym utknąłem. Doceniam każdą pomoc!wyodrębnianie pierwszej linii z pliku przy użyciu polecenia awk

Dostarczony jest zestaw plików, z których każdy zawiera dane osobowe dotyczące danej osoby. Każdy plik jest określone w następującym formacie, z jednego pliku na indywidualną:

name:Niko Tanaka 
age:41 
occupation:Doctor 

wiem, że odpowiedź musi być w formie:

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

'awk NR == 1 ', czy trzeba tylko wydrukować imię? 'awk -F: 'NR == 1 {print $ 2}'' – Kevin

+2

A jeśli plik jest bardzo duży, dobrze jest zrobić 'awk 'NR == 1 {print; exit} ", aby plik nie był czytany po pierwszym wierszu. – fedorqui

Odpowiedz

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

co jest w środku / / są wyrażeniami regularnymi. W tym przypadku chcesz dopasować tylko wiersz zawierający "imię".

16
awk 'NR==1' filename 

Wynik

name:Niko Tanaka 
Powiązane problemy