交换字符串中的字符位置(bash)

时间:2015-03-13 15:10:49

标签: string bash location character iccid

我遇到了一个问题,我需要在bash中更改字符串中字符的顺序,以获得SIM卡的ICCID。

我从调制解调器获得的数字看起来像这样的例子; 980136010000006187F5。我需要做的是成对地取出字符串中的字符并反向背诵它们。在这个例子中,98将是89,01将是10,依此类推,最后加起来为8910631000000016785F这是一个正确的ICCID号。

我在想这可能是使用sed或for-loop of corts,但我已经陷入了如何实现这一目标的困境。非常感谢帮助!

此致 卡尔

1 个答案:

答案 0 :(得分:1)

sed可以轻松完成。

sed 's/\(.\)\(.\)/\2\1/g' <<<980136010000006187F5

sed命令找到与..的每个匹配(即一对字符),独立捕获它们,然后以相反的顺序将它们替换为两个捕获。