unix - 如何在ksh中反转字符串

标签 unix awk sed solaris ksh

请帮我解决这个问题,我有一个包含 1000 行数字的数组,这些行被视为字符串,我希望所有这些都一一反转,我的问题是如何反转它们,因为我必须将 ksh 或其他与 bash 或其他东西一起使用会很容易.....我现在拥有的是这个,但是 rev="$rev${copy:$y:1}" 在 ksh 中不起作用。

i=0
while [[ $i -lt 999 ]]
do  
    rev=""
    var=${xnumbers[$i]}
    copy=${var}
    len=${#copy}
    y=$(expr $len - 1)
    while [[ $y -ge 0 ]]
    do  
        rev="$rev${copy:$y:1}"
        echo "y = " $y
        y=$(expr $y - 1)
    done

    echo "i = " $i
    echo "rev = " $rev
    #xnumbers[$i]=$(expr $xnumbers[$i] "|" $rev)
    echo "xum = " ${xnumbers[$i]}
    echo "##############################################"
    i=$(expr $i + 1)
done

最佳答案

我不确定为什么我们不能使用内置的 rev 函数。

$ echo 798|rev
897

你也可以试试:

$ echo 798 | awk '{ for(i=length;i!=0;i--)x=x substr($0,i,1);}END{print x}'
897

关于unix - 如何在ksh中反转字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36745088/

相关文章:

升级到 Lollipop 后,Android NDK mmap 调用在 32 位设备上中断

linux - 如何匹配 awk 中的 shell 变量?

regex - 在 bash 中匹配具有一定数量的唯一字符的字符串

linux - 如何启动一个命令,然后在第一个命令完成后并行启动一系列命令?

linux - 如何杀死Linux中特定端口上运行的进程?

windows - Windows 中的父子关系

bash - 在 bash 脚本中向十六进制数字添加前导零

linux - sed 替换为十六进制

regex - 删除仅包含特定字符串的重复行

bash - 删除目录下文件下划线