Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: вопрос по sed  (Прочитано 1463 раз)

0 Пользователей и 1 Гость просматривают эту тему.

izamoo

  • Автор темы
  • Гость
вопрос по sed
« : 15 Августа 2012, 22:43:55 »
Знаю что в выражении:
sed 's/\,//g'ищется запятая и удаляется. а вот если мне надо удалить не только запятую а например несколько знаков пунктуации, как мне написать команду? или все это делать через конвеер, сначала запятая, затем допустим точка, затем знак вопроса?


Пользователь решил продолжить мысль 15 Августа 2012, 23:11:35:
точнее мне нужно удалить все знаки припинания в тексте. как мне их перечислить в sed?
« Последнее редактирование: 15 Августа 2012, 23:11:35 от izamoo »

Оффлайн Сперанский

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 4055
  • Dictum ac factum
    • Просмотр профиля
Re: вопрос по sed
« Ответ #1 : 15 Августа 2012, 23:20:17 »
sed 's/[,.:;!?]//g'

izamoo

  • Автор темы
  • Гость
Re: вопрос по sed
« Ответ #2 : 15 Августа 2012, 23:20:56 »
вроде разобрался:
sed 's/[\,:;\.\?]//g'
но возникла проблемма с ковычками. в тексте они вот такие << и >>, а как мне прописать их, на клаве обычные, ставятся вида "
« Последнее редактирование: 15 Августа 2012, 23:25:02 от izamoo »

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: вопрос по sed
« Ответ #3 : 15 Августа 2012, 23:23:35 »
sed 's/\,\|\.\|:\|;\|!\|?//g'
Wars ~.o

izamoo

  • Автор темы
  • Гость
Re: вопрос по sed
« Ответ #4 : 15 Августа 2012, 23:24:36 »
sed 's/\,\|\.\|:\|;\|!\|?//g'

спасибо, а как быть с кавычками?

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: вопрос по sed
« Ответ #5 : 15 Августа 2012, 23:29:24 »
a=hello
sed 's/'"$a"'//g'
Wars ~.o

izamoo

  • Автор темы
  • Гость
Re: вопрос по sed
« Ответ #6 : 15 Августа 2012, 23:30:21 »
a=hello
sed 's/'"$a"'//g'
не понял.

Пользователь решил продолжить мысль 15 Августа 2012, 23:31:13:
вот текст:
Сев в такси, спросила такса:
«За проезд какая такса?»
А водитель: «Денег с такс
Не берём совсем, вот такс».

как убрать вот такие кавычки?

Оффлайн mkarasik

  • Участник
  • *
  • Сообщений: 163
    • Просмотр профиля
Re: вопрос по sed
« Ответ #7 : 16 Августа 2012, 03:18:39 »
А в гугле почитать про регулярные выражения не судьба?

Вроде так \(<<\) не помню, давно не делал.

andrey_p

  • Автор темы
  • Гость
Re: вопрос по sed
« Ответ #8 : 16 Августа 2012, 05:31:10 »
Копипастом удобнее всего. С кодировками может возникнуть заморочка - нужно, чтоб текст был в utf-8 (стандартная кодировка в современном Linuxе). Если нет, то можно сконвертировать (iconv).

sed 's/[«»]/"/g'

 

Страница сгенерирована за 0.017 секунд. Запросов: 21.