Страница 1 из 1

Чем удалить кусок строки

Добавлено: 2011-12-03 20:32:10
kharkov_max
День добрый.

Есть файлик в нем строки с текстом )))

Нужно из строки удалить все что находится между символами "(бла бла бла )" в том числе и сами символы ().
Как это сделать

Спасибо.

Re: Чем удалить кусок строки

Добавлено: 2011-12-03 21:20:41
kharkov_max
Нашел
cat ./file | sed 's|(.*)||' > ./new_file

Следующий вопрос.
В строках встречается такое

(бла бла) (бла бла)

В выше указаном варианте sed удаляет все, а нужно что б удалял только первое совпадение.
awk не подойдет т.к. не во всех строках есть такие повторения ...

Как через sed закрутить ?

Re: Чем удалить кусок строки

Добавлено: 2011-12-03 21:41:50
kharkov_max
Вообщем sed как то нужно указать что между () должны быть буквы или цифры а не символы ().

Re: Чем удалить кусок строки

Добавлено: 2011-12-03 22:30:33
kpp
Удалить нужно только первое вхождение в каждой строке файла или первое вхождение по всем файле?
Либо я туго под вечер соображаю, либо условие какое-то неточное.

Re: Чем удалить кусок строки

Добавлено: 2011-12-03 22:46:44
kharkov_max
kpp писал(а):Удалить нужно только первое вхождение в каждой строке файла или первое вхождение по всем файле?
Либо я туго под вечер соображаю, либо условие какое-то неточное.
К примеру

Код: Выделить всё

#Kode qwertyu fhfhfgh etet 4 erwrwr
12345 (qwerty) sfsfwegdgdg
#Kode qwertyu fhfhfgh etet 4 erwrwr gdgertetertg
234567 (qwerty) etetete (poiuyrre)
После sed должно получится

Код: Выделить всё

#Kode qwertyu fhfhfgh etet 4 erwrwr
12345 sfsfwegdgdg
#Kode qwertyu fhfhfgh etet 4 erwrwr gdgertetertg
234567  etetete (poiuyrre)
а пока получается

Код: Выделить всё

#Kode qwertyu fhfhfgh etet 4 erwrwr
12345  sfsfwegdgdg
#Kode qwertyu fhfhfgh etet 4 erwrwr gdgertetertg
234567 

Re: Чем удалить кусок строки

Добавлено: 2011-12-04 21:22:49
kpp

Код: Выделить всё

sed 's/(.[^(]*)//' ./file > ./new_file
Так попробуй.
Замечу, что

Код: Выделить всё

cat ./file
совсем не обязательно.

Re: Чем удалить кусок строки

Добавлено: 2011-12-04 21:35:41
kharkov_max
Ну так почему то не отработало, но направление понятно - ответ найду.
cat - учел

Спасибо.

Re: Чем удалить кусок строки

Добавлено: 2011-12-04 21:54:32
kpp
С Вашим примером у меня на выходе:

Код: Выделить всё

#Kode qwertyu fhfhfgh etet 4 erwrwr
12345  sfsfwegdgdg
#Kode qwertyu fhfhfgh etet 4 erwrwr gdgertetertg
234567  etetete (poiuyrre)
Вроде как и заказывали.

Re: Чем удалить кусок строки

Добавлено: 2011-12-04 22:10:04
kharkov_max
kpp писал(а):С Вашим примером у меня на выходе:

Код: Выделить всё

#Kode qwertyu fhfhfgh etet 4 erwrwr
12345  sfsfwegdgdg
#Kode qwertyu fhfhfgh etet 4 erwrwr gdgertetertg
234567  etetete (poiuyrre)
Вроде как и заказывали.
Еще может быть так:

Код: Выделить всё

#Kode qwertyu fhfhfgh etet 4 erwrwr
12345 (qwerty)sfsfwegdgdg
#Kode qwertyu fhfhfgh etet 4 erwrwr gdgertetertg
234567 (qwerty)etetete (poiuyrre)
Т.е. без пробелов между первыми скобками
Ваш пример не удаляет первые скобки и содержимое между ними ((.

Re: Чем удалить кусок строки

Добавлено: 2011-12-04 22:16:10
kpp
В результате измененного примера на выходе у меня :

Код: Выделить всё

#Kode qwertyu fhfhfgh etet 4 erwrwr
12345 sfsfwegdgdg
#Kode qwertyu fhfhfgh etet 4 erwrwr gdgertetertg
234567 etetete (poiuyrre)
Ничего подозрительного не наблюдаю.

Чем удалить кусок строки

Добавлено: 2015-02-20 15:03:24
Fantom[NB]

Код: Выделить всё

sed 's/([^)]*) *//' ./text
и да, я знаю сколько лет прошло