awk
对输入文件的每一行都执行该命令,默认分隔符是空格
-F 可以自定义分隔符 awk -F \|
{}大括号中的方法
print 打印
$0 打印所有内容
$1 打印第一个变量(默认文件以空格分割)
判断条件 #awk -F \| 'NR==FNR{a[$2]=$0;next}{print a[$1]"|"$2}' account cdr
为真,执行紧接着的大括号中的内容,为假不执行该大括号中的内容
next 在循环逐行匹配,如果遇到next,就会跳过当前行,直接忽略下面语句。而进行下一行匹配。 一般配合判断条件使用
NR akw开始执行程序后所读取的数据行(读取多个文件不清零)
FNR akw开始执行程序后所读取的数据行(每读取一个新文件清零)
一般只使用NR,当对两个文件中的内容进行操作时,使用 NR==FNR作为判断条件,来判断是在第几个文件中执行
对输入文件的每一行都执行该命令,默认分隔符是空格
-F 可以自定义分隔符 awk -F \|
{}大括号中的方法
print 打印
$0 打印所有内容
$1 打印第一个变量(默认文件以空格分割)
判断条件 #awk -F \| 'NR==FNR{a[$2]=$0;next}{print a[$1]"|"$2}' account cdr
为真,执行紧接着的大括号中的内容,为假不执行该大括号中的内容
![](https://i-blog.csdnimg.cn/blog_migrate/498061f1a6ba10c8caac4a86734edfb5.png)
next 在循环逐行匹配,如果遇到next,就会跳过当前行,直接忽略下面语句。而进行下一行匹配。 一般配合判断条件使用
![](https://i-blog.csdnimg.cn/blog_migrate/71eced9991d4534f34d567cc03e40632.png)
NR akw开始执行程序后所读取的数据行(读取多个文件不清零)
FNR akw开始执行程序后所读取的数据行(每读取一个新文件清零)
一般只使用NR,当对两个文件中的内容进行操作时,使用 NR==FNR作为判断条件,来判断是在第几个文件中执行
![](https://i-blog.csdnimg.cn/blog_migrate/34e43557c3346cc7d5513f77a5e27bc3.png)
一起使用,直接使用NR和使用$NR是一样的
if 判断条件
if()+执行条件