打印第一行的第一个字段,默认分隔符为 空格或制表符TAB (都可以)。源数据可以是通过管道传递过来的多行字符串,也可以是文件。例如:echo -e "A B C\nD E F\nG H I" | awk 'NR==1 {print $1}'或者:awk 'NR==1 {print $1}' file.txt ...
当awk读取多个文件时,NR代表的是当前输入所有文件的全部记录数,而FNR则是当前文件的记录数。如下面的例子: $ awk'{print FILENAME, "FNR= ", FNR," NR= ", NR}'student-marks bookdetails student-marks FNR=1NR=1student-marks FNR=2NR=2student-marks FNR=3NR=3student-marks FNR=4NR=4student-mark...
也是读取文件的行数,但是和NR 不同的是当读取的文件有两个或两个以上时,NR 读取完一个文件,行数继续增加 而FNR 重新从1开始记录 [root@localhost test]# awk '{print "NR:" NR "FNR:" FNR}' test test2 test3 NR:1FNR:1 NR:2FNR:2 NR:3FNR:3 NR:4FNR:4 NR:5FNR:5 NR:6FNR:1 NR:7FNR...
➜ testawk'END {print NR}'data2.txt4#实例2:先输出行号,再输出本行有几个数据字段,再输出本行,最后输出文件名 ➜ testawk'{print NR,NF,$0} END {print FILENAME}'data2.txt16line1:This is the header line1.27line2:This is the first data line2.37line3:This is the second data line3.46...
$ awk-F':''{print NR ") "$1}'demo.txt1)root2)daemon3)bin4)sys5)sync 上面代码中,print命令里面,如果原样输出字符,要放在双引号里面。 awk的其他内置变量如下。 FILENAME:当前文件名 FS:字段分隔符,默认是空格和制表符。 RS:行分隔符,用于分割每一行,默认是换行符。
awk-vOFS=". "'{print NR,$0}'/tmp/hosts#在每行前面加上行号和点 1. 2. 3. ORS 保存的是输出记录的分隔符 awk-vORS="-"'{print $1}'/tmp/hosts 1. 2.7.print指令 可以输出常量和变量,如果是字符串常量需要用双引号括起来,数字常量可以直接打印 ...
awk 'BEGIN{a="100testa";if(a ~ /^100*/){print "ok";}}' ok awk高级输入输出 读取下一条记录:next 语句 awk中next语句使用:在循环逐行匹配,如果遇到next,就会跳过当前行,直接忽略下面语句。而进行下一行匹配。net语句一般用于多行合并: awk 'NR%2==1{next}{print NR,$0;}' text.txt ...
cat text.txt a b c d e awk 'NR%2==1{next}{print NR,$0;}' text.txt 2 b 4 d 当记录行号除以2余1,就跳过当前行。下面的print NR,$0也不会执行。下一行开始,程序有开始判断NR%2值。这个时候记录行号是:2,就会执行下面语句块:'print NR,$0' 分析发现需要将包含有“web”行进行跳过,然后需要...
awk'{print $1, $2}'file 使用分隔符指定列: awk-F',''{print $1, $2}'file 打印行数: awk'{print NR, $0}'file 打印行数满足条件的行: awk'/pattern/ {print NR, $0}'file 计算列的总和: awk'{sum += $1} END {print sum}'file ...
user@localhosts:awk$ awk'NR == 1 {print $0}'mail-list Amelia 555-5553 amelia.zodiacusque@gmail.com F user@localhosts:awk$ awk'NR == 3 || NR==4 || NR==5 {print $0}'mail-list Becky 555-7685 becky.algebrarum@gmail.com A ...