删除所有文本,直到文件中的字符串出现

时间:2016-07-12 16:29:15

标签: bash file unix

我有一个带有一条注释行的css文件:

... css代码

/*!ENDBASE*/

... css代码

我需要删除文件中/*!ENDBASE*/(包含)之前的所有内容,并且必须处理缩小的css(因此不是基于行的)

如何使用sed或其他类似的bash命令实现这一目标?

2 个答案:

答案 0 :(得分:2)

您可以试试awk

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

逻辑:使用/*!ENDBASE*/作为分隔符拆分文件。打印记录#2以后。

答案 1 :(得分:1)

您可以使用此sed

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

这会删除第1行到搜索字词/*!ENDBASE*/

的所有行