LINUX.ORG.RU
ФорумAdmin

sed не работает регулярное выражение

 ,


0

1

cat test_file:

1983 Ivanov P.V 23d05vT Web-Dev
1974 Petrov F.A X49#@S  ProjectMgr

нужно убрать цифры(год рождения) в начале каждой строки

решил вот так:

sed -r 's/[0-9]{4}/ /g' 

но почему так не работает?

sed -r 's/^[0-9]{4}/ /g'

нужны варианты с условием замены,где строка должна начинатся с 4х-цифр


Ответ на: комментарий от futurama

начало строки одно, а строк то много.Если я правильно понял, то без глобал только первое соответствие изменяется, остальные нет, то есть в первой строке удалится число, а в остальных строках нет

w1rox ()
Ответ на: комментарий от w1rox

Да ничего тебе не надо исправлять в регулярке, всё работает:

abw@abw 7 ~ $ cat test_file
1983 Ivanov P.V 23d05vT Web-Dev
1974 Petrov F.A X49#@S  ProjectMgr
abw@abw 7 ~ $ sed -r 's/^[0-9]{4}/ /g' test_file
  Ivanov P.V 23d05vT Web-Dev
  Petrov F.A X49#@S  ProjectMgr
abw@abw 7 ~ $ 
И ни один из «советчиков» «как исправить» не удосужился это проверить. А нужно тебе разобраться что и почему не работает у тебя.

awk это круто,

Для решения этой задачи awk не проще и не удобнее, а приведённый пример решает совсем другую задачу.

ABW ★★★★★ ()
Ответ на: комментарий от w1rox

У меня сложилось впечатление, что ты не изучаешь, а просишь сделать за тебя д/з. Изучение предполагает не получение готового ответа, а исследование вопроса. Что-то исследования в теме не видно.

Nedderokumo ()