免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5223 | 回复: 15
打印 上一主题 下一主题

awk中使用print|cmd后如何getline [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-11-09 19:27 |只看该作者 |倒序浏览
我打算用awk做一个迅雷链接转换,为了方便,我先假设abcd的base64 -d 结果是AAZZ
迅雷的链接是thunder://abcd
目前有这样的问题,我先用gsub获取abcd,然后print $0|"base64 -d"得到AAZZ,但是这个值直接打印出来了,再加一个getline不行,换成sprint也不行,我要怎么获取这个值,然后gsub把AA和ZZ替换掉?或者awk自带base64逆转的办法么?
我现在的代码是这样的:awk '/^thunder:\/\//{gsub("thunder://","");print $0|"base64 -d";print "\n"}'
如果不行的话只能awk处理后再用sed处理了,或者直接用perl实现。

论坛徽章:
0
2 [报告]
发表于 2011-11-09 20:08 |只看该作者
print data |& "subprogram"
"subprogram" |& getline results

论坛徽章:
0
3 [报告]
发表于 2011-11-09 20:13 |只看该作者
ps:别忘了close

论坛徽章:
0
4 [报告]
发表于 2011-11-09 20:27 |只看该作者
awk '/^thunder:\/\//{gsub("thunder://","");print $0|&"base64 -d";"base64 -d"|& getline a;print a}'这样?不对吧?

论坛徽章:
1
摩羯座
日期:2014-12-29 15:59:36
5 [报告]
发表于 2011-11-09 21:38 |只看该作者
本帖最后由 ziyunfei 于 2011-11-09 21:39 编辑

awk '/^thunder:\/\//{sub("thunder://","");"base64 -d <<<"$0| getline a;print substr(a,3,length(a)-4)}'

论坛徽章:
0
6 [报告]
发表于 2011-11-09 21:39 |只看该作者
算了,给bug-gawk@gnu.org发邮件了,官方文档好像有问题。

论坛徽章:
1
摩羯座
日期:2014-12-29 15:59:36
7 [报告]
发表于 2011-11-09 21:40 |只看该作者
算了,给发邮件了,官方文档好像有问题。
walkerxk 发表于 2011-11-09 21:39

有啥问题

论坛徽章:
0
8 [报告]
发表于 2011-11-09 21:42 |只看该作者
有啥问题
ziyunfei 发表于 2011-11-09 21:40


刚看到你的回复我测试了一下
echo abc|awk '{"base64 -d <<<"$0| getline a;print a}'
sh: Syntax error: redirection unexpected
还是不行。
http://www.gnu.org/software/gawk ... tline_002fCoprocess这里也是二楼的格式,但是不行。

论坛徽章:
1
摩羯座
日期:2014-12-29 15:59:36
9 [报告]
发表于 2011-11-09 21:46 |只看该作者
刚看到你的回复我测试了一下
echo abc|awk '{"base64 -d
walkerxk 发表于 2011-11-09 21:42


echo YWJj|awk '{"echo "$0"|base64 -d"| getline a;print a}'

论坛徽章:
0
10 [报告]
发表于 2011-11-09 21:50 |只看该作者
恩,这样可行,不过coprocess确实是有问题的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP