2012-01-29 39 views
6

我一直在經歷一個在線UNIX課程,並遇到了我堅持的這個問題。將不勝感激任何幫助!使用awk命令從文件中提取第一行

爲您提供一組文件,其中每個文件都包含有關個人的個人詳細信息。在下面的格式每個文件都擺出來,每個單獨的一個文件:

name:Niko Tanaka 
age:41 
occupation:Doctor 

我知道答案必須是形式:

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

'AWK NR == 1',或者你有隻打印名字? 'awk -F:'NR == 1 {print $ 2}'' – Kevin 2012-01-29 22:59:04

+2

如果文件非常大,可以使用'awk'NR == 1 {print;退出}「,這樣文件在第一行後就不再被讀取了。 – fedorqui 2014-05-12 08:24:04

回答

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

無論是內部/ /是正則表達式。在這種情況下,您只想匹配包含'name'的行。

16
awk 'NR==1' filename 

結果

name:Niko Tanaka