команда sed pattern - PullRequest
       6

команда sed pattern

2 голосов
/ 30 января 2012

Итак, я применил эту команду sed к $ 1, которая является файлом, который я хотел бы знать, как sed вычисляет всю последовательность слэша, обратной косой черты и что означает любой символ в шаблоне

sed '/^\/\*/d/.*\*\//d' $1

насколько я знаю

'/^ ....../d' 

удаляет некоторый шаблон в начале строки (учитывая второй d)

- что означает первый d, как насчет точки и/ или / \ (unescape chars?)

может кто-нибудь объяснить мне, пожалуйста?

1 Ответ

3 голосов
/ 30 января 2012

На самом деле это две команды sed:

/^\/\*/d
/.*\*\//d

^ соответствует началу строки, \/ соответствует буквенной косой черте, \* соответствует буквальной звездочке. (Поскольку косая черта и звездочка - это «метасимволы», их необходимо экранировать обратной косой чертой, чтобы они соответствовали буквально.)

.* соответствует любой последовательности символов, \* снова соответствует буквальной звездочке, \/ снова соответствует буквенной косой черте.

Соберите все это вместе, и это приведет к удалению комментариев в стиле C, но только если они появляются в начале строки:

/* This will go away */This will stay
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...