2016-04-06 3 views
1

Мне нужно заменить последнее вхождение пространства во входной файл, используя sed.Заменить последнее возникновение пространства с помощью sed

То, что я придумал это

sed "s/([ ])[0-9]*$/,/g" 

Однако это, кажется, не хотят, чтобы вспомнить пространство, в котором он должен заменить. Выполнение команды без круглых скобок отлично работает (для чего это должно быть сделано - замените пробел и цепочкой чисел). Когда я добавляю скобки, он ничего не делает.

Да, я знаю о решении this, однако, пытаясь пройти \1 до sed, он кричит, что «\ 1 не определен в RE».

Кто-нибудь должен помочь? Кажется, это простая проблема, я был бы рад узнать о решении.

+0

Я полагаю, вы имели в виду «последнее место на * каждый * линии»? Или, может быть, «на * а * линии?» Наверное, не «последнее место в * файле», * я полагаю? – DigitalRoss

ответ

1

Это, казалось, работали «в первый раз» (яй) ...

$ sed -e 's/ \([^ ][^ ]*\)$/,\1/' /etc/hosts 
+0

Я вижу, что я сделал не так. Мне нужно сбежать из скобок ... –

Смежные вопросы