日期:2014-05-16  浏览次数:20566 次

awk system()中再次调用awk
本帖最后由 u013514345 于 2014-03-20 04:05:55 编辑
我现在使用awk的for循环做数据处理,然后在循环中使用system()调用了系统命令和grep/sed

但是在处理完之后的一组数据,我仍然想使用awk的'{print $}'来提取第i 个字符串,请问该如何实现?此时的内建参数都是循环外awk设置的,相当与在循环内递归调用另一组awk

程序大致流程如下:
awk for(...) {
   system("system call" | grep ... | sed ...| awk '{print $1}'
}


黑体部分是我想要递归调用的awk,此时print的$1是sed后的结果,而不是循环外的awk设置的
我能想到的是再自定义一个函数?或者,用sed实现awk的这一功能的话,该如何做?

谢谢大家!
------解决方案--------------------
echo A B C 
------解决方案--------------------
 awk '{system("echo 1 2 3 
------解决方案--------------------
 grep 3 
------解决方案--------------------
 sed 's/1/hello/' 
------解决方案--------------------
 awk \x27{print $1}\x27")}'