反转相邻数字对

时间:2018-06-14 20:58:06

标签: shell unix awk

如何在文件中反转所有相邻数字对?

示例输入:

a3972b

输出:

a9327b

我尝试使用:awk

awk { $1 | rev }

但它不起作用,你能告诉我如何只反转数字2乘2

2 个答案:

答案 0 :(得分:4)

尝试sed back-references

echo a3972b c5981b | sed 's/\([[:digit:]]\)\([[:digit:]]\)/\2\1/g'

输出:

a9327b c9518b

答案 1 :(得分:1)

如果你想要一个awk解决方案:( gawk)

您可以使用以下命令:

$ echo a3972b u1234v | awk '{print gensub(/([0-9])([0-9])/,"\\2\\1","g",$0)}'                                                   
a9327b u2143v

有关gensub的详细信息,请查看https://www.gnu.org/software/gawk/manual/html_node/String-Functions.html