我想要的是得到当前行的反向字符串,我试图在AWK中使用rev命令但是无法获得当前结果.
$ cat myfile.txt
abcde
$ cat myfile.txt | awk '{cmd="echo "$0"|rev"; cmd | getline result; print "result="$result; close(cmd);}'
abcde
Run Code Online (Sandbox Code Playgroud)
我想进入edcba输出.
我知道还有其他一些方法可以让反转的字符串像$ cat myfile.txt | exec '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
Run Code Online (Sandbox Code Playgroud)