2012-01-29 195 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