2016-07-12 2 views
1

У меня есть CSS-файл с одной комментировал линии:удалить весь текст до строки в вхождение файла

... CSS код

/*!ENDBASE*/

... код CSS

Мне нужно удалить все до /*!ENDBASE*/ (прилагается) в файл и работать с мини-css тоже (так не на основе строки)

Как я могу достичь что с помощью sed или других подобных команд bash?

+0

Это линия, основанная на строке, содержащей значение дозорного! –

ответ

1

Вы можете использовать этот sed:

sed -i.bak '1,/\/\*!ENDBASE\*\//d' file 

Это удалит все строки из строки # 1 к поисковому запросу /*!ENDBASE*/

+0

Вы не можете удалить строку, содержащую '/ *! ENDBASE * /', если после этой строки в строке есть какие-либо символы. –

+0

Я думал, написав '(включено)' OP хотел удалить эту строку. – anubhava

+1

блестящий, спасибо, и да, я тоже хотел удалить эту строку, +1 для вас, хотя мне еще не разрешено проголосовать –

2

Вы можете попробовать это awk:

awk -v RS='/\*!ENDBASE\*/' 'BEGIN{ORS=RS} NR>1' file.css 

Logic : разделите файл на /*!ENDBASE*/ в качестве разделителя. Распечатайте запись №2 и далее.

+0

Ничего, но я не уверен, что вы хотите установить ORS. Если дозорный сигнал появляется в файле более одного раза, возможно, это должно рассматриваться как ошибка. (т. е. добавить сообщение «NR> 2 {print« error »>«/dev/stderr »; exit 1;}' –

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