微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在AWK中使用管道

我想要的是得到当前行的反向字符串,我试图在AWK中使用rev命令但是无法获得当前结果.

$cat myfile.txt
abcde

$cat myfile.txt | awk '{cmd="echo "$0"|rev"; cmd | getline result;  print "result="$result; close(cmd);}'
abcde

我想在输出中获得edcba.

我知道还有其他一些方法来获得像$cat myfile.txt一样的反向字符串执行’rev’.在这里使用AWK是因为还有其他一些过程要做.

我错过了什么吗?

解决方法

系统功能允许用户执行操作系统命令,然后返回到awk程序.系统函数执行string命令给出的命令.它返回由执行的命令返回的状态作为其值.

$cat file
abcde

$rev file
edcba

$awk '{system("echo "$0"|rev")}' file
edcba

# Or using a 'here string'
$awk '{system("rev<<<"$0)}' file
edcba

$awk '{printf "Result: ";system("echo "$0"|rev")}' file
Result: edcba

# Or using a 'here string'
$awk '{printf "Result: ";system("rev<<<"$0)}' file
Result: edcba

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐