awk如何引用shell命令与外部变量 2011-08-29
-
’{”shell命令” |
getline}’ shell命令(如date可取当前日期)并用getline记录进$0; |
- ‘{system( “shell命令” )}’ 该办法的缺点是awk与shell命令之间不能存在数据的交互;
- 在awk语句的最后形如data>newdata之前赋值(如IF_NUM=$if_num),可将shell中现有数据传给awk使用,如果脚本中需要根据入参做条件判断则该办法很好用。
update看到了一篇文章<awk引用外部变量的六种方法>比这里总结的更好
- awk -v awkvar=$extvar … #使变量的作用域扩展至BEGIN{}
- awk ‘’ “awkvar=$extvar” filename #BEGIN段不可用
- 在awk表达式中使用’$extvar’
- 模式引用(在正则表达式中引用外部变量) ‘“$extvar”’
- 遍历外部数组(用于BEGIN段处理) awk -f ‘BEGIN{for(i=1;i<ARGC;i++)print ARGV[i]}’ ${extarr[@]}
- 引用环境变量 ENVIRON[“environment variable”]