Awk

AWK的工作模式 awk 'Pattern {Action}' 其中 Pattern 常用变量及函数 熟记的变量 NF NF 最后一个域,$NF获取最后一个域的值。如下 echo {a..d} | awk '{print NF, $NF}' 4 d NR/FNR NR表示awk开始执行程序后所读取的数据行数。FNR与NR功用类似,不同的是awk每打开一个新文件,FNR便从0重新累计。如果是一个文件的话,NF和FNR没有区别 有两个文件格式如下: account文件 张三|000001 李四|000002 cdr文件 000001|10 000001|20 000002|30 000002|15 想要得到的结果如下 张三|000001|10 张三|000001|20 李四|000002|30 李四|000002|15 FS/OFS FS输入字段分隔符,默认为空格。OFS输出字段分隔符,默认为空格。 echo "1:2:3" | awk 'BEGIN{FS=":"; OFS=","} {print $1, $2, $3}' 1,2,3 RS/ORS/RT RS输入记录分隔符,默认为换行符。ORS输出记录的分隔符默认为换行符号。 ➜ cat file a b:c d e f:g h 下面这命令解释,首先修改了RS的,则上面的file文件中的行会变成下面三行内容。然后后面打印第2列,即输出的结果为b d h a b c d e f g h ➜ cat file | awk 'BEGIN{RS=":"} {print $2}' b d h ➜ cat file | awk 'BEGIN{RS=":"; ORS=","} {print $2}' b,d,h, ➜ cat file | awk 'BEGIN{RS=":"; ORS=","} {print $2, "<"RT">"}' b <:>,d <:>,h <>, 如上面的一个例子 RT的值就是匹配到的RS的值,RS的值可以采用正则进行设定。 ...

April 9, 2026 · 6 min · Theme PaperMod