Обмен местами символов в строке (bash)
Я столкнулся с проблемой, когда мне нужно изменить порядок символов в строке в bash, чтобы получить ICCID сим-карты.
Число, которое я получаю от модема, выглядит, например, так; 980136010000006187F5. Что мне нужно сделать, это взять символы в строке в парах и повторять их в обратном порядке. В этом примере 98 будет 89, 01 будет 10 и т. Д., В итоге добавится 8910631000000016785F, который является правильным номером ICCID.
Я думаю, что это может быть возможно при использовании sed или цикла for, но я застрял в том, как этого добиться. Помощь будет очень ценится!
С уважением, Карл
1 ответ
sed
могу сделать это легко.
sed 's/\(.\)\(.\)/\2\1/g' <<<980136010000006187F5
Команда sed находит все совпадения с ..
(т.е. пара символов), захватывая их независимо, а затем заменяя их двумя захватами в обратном порядке.