2013-07-03 5 views
0

У меня есть вход так:Удалить все слова, начинающиеся с определенной закономерностью в SED

A.x: ksvbskv sdbvfv /a/b/c \ 
    vvsvr /a/b /a/b/m/d \ 
    hmnghmgh 

мне нужен образец в sed команду, которая удаляет все слова запускаются с /a/b и на выходе будет:

A.x: ksvbskv sdbvfv \ 
    vvsvr \ 
    hmnghmgh 

Я использовал это для цели Makefile. Поэтому я могу обрезать некоторые конкретные значения.

+1

@Taner может быть стоит в том числе некоторые примеры SED команд, попробовали и вывод, который вы получили от них, поскольку люди, вероятно, смогут изменить ваши предыдущие попытки быстрее, чем они могут придумать идеи с нуля. – robjohncox

+0

@robjohncox У меня нет примера команды sed (потому что причина не знает хорошо). Мне это нужно для проверки кода. – tyilmaz

ответ

4

Это будет делать трюк:

$ sed 's%/\ba/b[^ ]*%%g' file 
A.x: ksvbskv sdbvfv \ 
    vvsvr \ 
    hmnghmgh 

Объяснение:

s  # Substitute 
%  # Delimiter 
\b  # Word boundary 
a/b # Literal string 
[^ ]* # Zero or more characters that are not a space 
%  # Delimiter 
%  # Delimiter 
g  # Global substitution 
+1

Спасибо, и ваш ответ, и объяснение, это работает. – tyilmaz

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