1-е решение: Не могли бы вы попробовать следующее. Используя попытку OP обратной ссылки здесь.
sed 's/\([^:]*\):\(.*\)/\2:\1/' Input_file
2-е решение: В awk
, используя временную переменную и меняя значения обоих полей.
awk 'BEGIN{FS=OFS=":"} {tmp=$1;$1=$2;$2=tmp} 1' Input_file
ИЛИ, согласно предложению Sundeep, попробуйте просто напечатать их:
awk 'BEGIN{FS=OFS=":"} {print $2, $1}' Input_file
Почему попытка OP не работает: Метод OP для использование возможности обратных ссылок выглядит хорошо, но в регулярном выражении OP ищет место для совпадения, которого нет, поэтому нам нужно упомянуть :
в соответствии с Input_file, и тогда оно должно работать с небольшим изменением.