linux 解析awk(行处理)

test.txt样本 ========== abc 123 123 abc abc 123 hello world 123 abc 123 abc hello world abc 123 ========== (1) awk基础用法。 awk '{print $2}' test.txt #打印第二列 awk '{print $0}' test.txt #打印所有列,等价于 cat test.txt awk '{print 123}' test.txt #仅打印预设数字 或 awk '{print "123"}' test.txt awk '{print "abc"}' test.txt #仅打印预设文本,数字双引号可省略,但字符不可省 (2) awk普通匹配 awk '/123/' test.txt #匹配含有123的行 awk '/123/,/hello/' test.txt #匹配含有123或hello的行 awk '$1==123' test.txt #匹配第一列等于123的行,或 awk '$1=="123"' test.txt awk '$1=="abc"' test.txt #匹配第一列等于abc的行,注意此处abc为字符必须使用双引号,123当数字处理不需要,当字符处理需要加双引号 awk '$1*$2>100' test.txt #匹配第一列与第二列的乘积大于100的行 awk '$2>5&&$2<125' test.txt #匹配第二列大于5小于125的行 awk 'length<8' test.txt #显示长度小于8的行 awk '/123/{print $1,$2+10}' test.txt #匹配含有123的行的第二个域加10 (如果特定变量不包含效数字,那么 awk 在计算数学表达式时将该变量当作数值零处理。) awk '/123/{print $1$2}' test.txt #匹配含有123的行连续打印第一、二列 或 awk '/123/{print $1 $2}' test.txt awk '/123/{print $1,$2}' test.txt #匹配含有123的行打印第一、二列 (3) awk正则匹配 awk '/^[0-9]/ { print $1}' test.txt #匹配数字开头的行 awk '/^[a-zA-Z]/ { print $1}' test.txt #匹配引文开头的行 (4) BEGIN 与 END 代码块 awk 'BEGIN {print "===== by cc. ====="}{print $2}END {print "=================="}' test.txt #加上头尾显示第二列 (5) 表达式与代码块 awk '$1=="abc" {print $2}' test.txt #匹配第一列等于abc的行,打印第二列 (6) 条件语句 awk '{if ($1=="abc")print $2}' test.txt #如果第一列等于abc,打印第二列,效果同上 (7) 字段分隔符 awk -F ' ' '{print $1}' test.txt #按新分割符打印第一列 或 awk -F '|' '{print $1}' test.txt (8) awk内置变量 NF:当前记录中的字段个数 NR:已经读出的记录数 FS:输入字段分隔符(缺省为:space:),相当于-F选项 (9) 其它应用参数 awk --help

======================================================
awk '/123/' test.txt > 1.txt 将含有123行的内容 写入1.txt文档

标签: none

评论已关闭