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

Swapping character locations in a string (bash)

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

我从调制解调器获取的号码是这样的; 980136010000006187F5。我需要做的是,将字符串中的字符成对地取出来,逆向背诵。在此示例中,98 将是 89,01 将是 10 等等,最后加起来为 8910631000000016785F,这是正确的 ICCID 号码。

我认为这可能可以使用 sed 或某种 for 循环,但我对如何实现这一点感到困惑。非常感谢您的帮助!

此致, 卡尔

sed 轻松搞定

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

sed 命令找到与 .. 的每个匹配项(即一对字符),独立捕获它们,然后用倒序的两个捕获替换它们。