在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

相关文章

在Linux系统中,设置ARP防火墙可以通过多种方法实现,包括使...
在Linux环境下,使用Jack2进行编译时,可以采取以下策略来提...
`getid`命令在Linux系统中用于获取当前进程的有效用户ID(EU...
在Linux环境下,codesign工具用于对代码进行签名,以确保其完...
Linux中的`tr`命令,其英文全称是“transform”,即转换的意...
Linux中的ARP防火墙是一种用于防止ARP欺骗攻击的安全措施,它...