Команда sed, чтобы перевернуть все двузначные числа в строку чисел - PullRequest
2 голосов
/ 28 ноября 2011

Я пытаюсь найти все две цифры только в следующем списке и поменять местами только те - я попробовал приведенный ниже код, но также меняются и первые две цифры номера 123 - Как заставить его игнорировать число 123 и просто перевернуть две цифры цифры

echo "87 123 45 6"  | sed -re 's/([0-9])([0-9])/\2\1/g'

Ответы [ 3 ]

2 голосов
/ 28 ноября 2011

С GNU sed используйте это:

sed -e 's/\<\([0-9]\)\([0-9]\)\>/\2\1/g'

\< указывает начало слова, \> конец.

1 голос
/ 28 ноября 2011

Вы должны включить маркеры границы слова:

$ echo "87 123 45 6" | sed -re 's/\b([0-9])([0-9])\b/\2\1/g'
78 123 54 6

Voila!

0 голосов
/ 28 ноября 2011

попробуйте это сработает echo "87 123 45 6" |sed -re 's / ([0-9]) ([0-9]) / \ 2 \ 1 / g' здесь я добавляю пробел, и это решает проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...