Итак, у меня есть строка, которая выглядит так: ish
somelongbullshit:888:morelongbullshitthatcanhaveanything
И я хочу заменить второй : на символ табуляции. Я могу надежно сопоставить подстроку, которую хочу заменить, следующим образом:
^.*:[0-9]*(:)
Я хочу заменить ту подстроку, которая у меня есть. Поэтому я пробовал делать sed
$ echo somelongbullshit:888:morelongbullshitthatcanhaveanything | sed 's/:[0-9]*(:)/\1\t/g'
sed: -e expression #1, char 19: invalid reference \1 on `s' command's RHS
Но я получаю сообщение об ошибке. Я уверен, что есть некоторая синтаксическая ошибка, в которой я ошибся, но для жизни я могу ее найти.
Я также открыт для лучших решений (например, awk).
$ echo "somelongbullshit:888:morelongbullshitthatcanhaveanything" | sed 's/\:/ /2'
somelongbullshit:888 morelongbullshitthatcanhaveanything