2015-03-26 3 views
0

У меня есть example.css, который содержитПочему sed не добавляет новую строку как awk?

http://www.example.com 
/* 
Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved. 
For licensing, see LICENSE.html or http://ckeditor.com/license 
*/ 
/* // http:// .cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical- 
/* 
*Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved. 
*For licensing, see LICENSE.html or http://zoelabs.com/license 

http://www.example3.com 

*Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved. 
*For licensing, see LICENSE.html or http://zoelabs.com/license 
*/ 



http://www.example2.com 

я уже успеха фильтровать строку между /* и */ с инвертным-матчем
А вот мой выход Баша:

/ ZoeLabs/- [ moono ] > sed -n '/\/\*/,/\*\//!p' example.css 
http://www.example.com 



http://www.example2.com/ ZoeLabs/- [ moono ] > 

Я ожидаю, что выход будет

/ ZoeLabs/- [ moono ] > sed -n '/\/\*/,/\*\//!p' example.css 
http://www.example.com 



http://www.example2.com 
/ZoeLabs/- [ moono ] > 

Бу t, почему sed не добавляет newline после сопоставленного рисунка, такого как awk do?
Что делать, чтобы добавить его?

+2

Файл CSS не заканчивается символом новой строки, не так ли? – Wintermute

+0

Вы не можете успешно разобрать комментарии стиля C с помощью регулярных выражений. В качестве встречного примера рассмотрим комментарий «/ * комментарий, содержащий закрытый», который */не анализируется как закрытие »' – msw

+3

Команда awk 'print' явно добавляет разделитель выходной записи (по умолчанию, новую строку) к текст печатается. См. Второй абзац [здесь] (https://www.gnu.org/software/gawk/manual/gawk.html#Output-Separators). sed не делает этого –

ответ

1
sed ':a;$!N;$!ba;s/\/\*[^*]*\*\([^/*][^*]*\*\|\*\)*\///g' example.css|awk '{print}' 
+0

спасибо :) это работает :) –

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