2017-02-10 11 views
0

Как я должен удалить одно слово перед разделителем использованием sedУдалить одно единственное слово перед разделителем с помощью СЭД

Для например, если вход hello I am eating: mango и разделитель : вывод должен быть hello I am : mango

+0

не 'СЭД бы«ы/[AZ] +:/:/g 'file' сделать это за вас? P.S использовать 'sed -E', если mac – ComputerFellow

+0

@ComputerFellow нет, он не будет. по умолчанию sed применяет BRE, ваш '+' является буквальным знаком «плюс», он ничего не соответствует в примере OP. также, если бы слово имело '[A-Z]', оно тоже потерпит неудачу. – Kent

+0

Работает с опцией '-E' – ComputerFellow

ответ

2
kent$ sed 's/[^:[:space:]]*:/:/' <<<"hello I am eating: mango" 
hello I am : mango 

СЭД один вкладыш, изменяет первую foo: в :

+0

Существует одна проблема: для строки ввода' sed 's/[^: [: space:]] *: /: /' << "eat:" 'возвращает пустую строку , Однако, если пространства нет, строка должна оставаться как есть. Пожалуйста, помогите с этим. – prabodhprakash

+0

это новое требование ... Я подумаю об этом, когда у меня найдется время. – Kent

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

  • Нет связанных вопросов^_^