免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 可可熊
打印 上一主题 下一主题

根据匹配内容进行替换 [复制链接]

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
21 [报告]
发表于 2008-11-21 15:47 |只看该作者
原帖由 ly5066113 于 2008-11-21 15:41 发表
cjaizss 兄的复杂了点。

sed -r '/color/{h;s/.*#([^;]+);.*/\1/;y/0123456789abcdef/fedcba9876543210/;G;s/(.*)\n(.*#)[^;]+(;.*)/\2\1\3/}' urfile

呵呵,我写的那么复杂还不是为了以妨万一嘛.假如有另外一行也长的跟这个有点像,写的不严格就会也按照这个处理了,那么结果就错了.所以我一般写的都比较严格.

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
22 [报告]
发表于 2008-11-21 15:49 |只看该作者

回复 #21 cjaizss 的帖子

严谨是个好习惯!

论坛徽章:
23
15-16赛季CBA联赛之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午马
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16赛季CBA联赛之山东
日期:2017-12-21 16:39:1915-16赛季CBA联赛之广东
日期:2016-01-19 13:33:372015亚冠之山东鲁能
日期:2015-10-13 09:39:062015亚冠之西悉尼流浪者
日期:2015-09-21 08:27:57
23 [报告]
发表于 2008-11-21 15:49 |只看该作者
原帖由 cjaizss 于 2008-11-21 15:47 发表

呵呵,我写的那么复杂还不是为了以妨万一嘛.假如有另外一行也长的跟这个有点像,写的不严格就会也按照这个处理了,那么结果就错了.所以我一般写的都比较严格.


呵呵,我一般比较懒,能少写一个字符我都会少写。

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
24 [报告]
发表于 2008-11-21 15:55 |只看该作者
懒也是好习惯!

论坛徽章:
0
25 [报告]
发表于 2008-11-21 15:58 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
26 [报告]
发表于 2008-11-21 16:00 |只看该作者

回复 #18 cjaizss 的帖子

针对这个文件就有问题了:
<?php
/*************************************************************************************
* abap.php
* --------
* Author: Andres Picazo (andres@andrespicazo.com)
* Copyright: (c) 2007 Andres Picazo
* Release Version: 1.0.8.1
* Date Started: 2004/06/04
*
* ABAP language file for GeSHi.
*
* CHANGES
* -------
* 2007/06/27 (1.0.0)
*   -  First Release
*
* TODO
* ----
*
*************************************************************************************
*
*     This file is part of GeSHi.
*
*   GeSHi is free software; you can redistribute it and/or modify
*   it under the terms of the GNU General Public License as published by
*   the Free Software Foundation; either version 2 of the License, or
*   (at your option) any later version.
*
*   GeSHi is distributed in the hope that it will be useful,
*   but WITHOUT ANY WARRANTY; without even the implied warranty of
*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*   GNU General Public License for more details.
*
*   You should have received a copy of the GNU General Public License
*   along with GeSHi; if not, write to the Free Software
*   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*
************************************************************************************/

$language_data = array (
    'LANG_NAME' => 'ABAP',
    'COMMENT_SINGLE' => array(1 => '"', 2 => '*'),
    'COMMENT_MULTI' => array(),
    'CASE_KEYWORDS' => 0,
    'QUOTEMARKS' => array("'"),
    'ESCAPE_CHAR' => '',
    'KEYWORDS' => array(
        1 => array(
            'if', 'return', 'while', 'case', 'default',
            'do', 'else', 'for', 'endif', 'elseif', 'eq',
            'not', 'and'
            ),
        2 => array(
            'data', 'types', 'seletion-screen', 'parameters', 'field-symbols', 'extern', 'inline'
            ),
        3 => array(
            'report', 'write', 'append', 'select', 'endselect', 'call method', 'call function',
            'loop', 'endloop', 'raise', 'read table', 'concatenate', 'split', 'shift',
            'condense', 'describe', 'clear', 'endfunction', 'assign', 'create data', 'translate',
            'continue', 'start-of-selection', 'at selection-screen', 'modify', 'call screen',
            'create object', 'perform', 'form', 'endform',
            'reuse_alv_block_list_init', 'zbcialv', 'include'
            ),
        4 => array(
            'type ref to', 'type', 'begin of',  'end of', 'like', 'into',
            'from', 'where', 'order by', 'with key', 'string', 'separated by',
            'exporting', 'importing', 'to upper case', 'to', 'exceptions', 'tables',
            'using', 'changing'
            ),
        ),
    'SYMBOLS' => array(
        '(', ')', '{', '}', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^', '&', ':'
        ),
    'CASE_SENSITIVE' => array(
        GESHI_COMMENTS => false,
        1 => false,
        2 => false,
        3 => false,
        4 => false,
        ),
    'STYLES' => array(
        'KEYWORDS' => array(
            1 => 'color: #4e4eff;',
            2 => 'color: #ffffff; font-weight: bold;',
            3 => 'color: #ffff99;',
            4 => 'color: #66cccc;'
            ),
        'COMMENTS' => array(
            1 => 'color: #7f7f7f; font-style: italic;',
            2 => 'color: #cc66cc;',
            'MULTI' => 'color: #7f7f7f; font-style: italic;'
            ),
        'ESCAPE_CHAR' => array(
            0 => 'color: #ffff66; font-weight: bold;'
            ),
        'BRACKETS' => array(
            0 => 'color: #993399;'
            ),
        'STRINGS' => array(
            0 => 'color: #00ffff;'
            ),
        'NUMBERS' => array(
            0 => 'color: #339933;'
            ),
        'METHODS' => array(
            1 => 'color: #dfdfdf;',
            2 => 'color: #dfdfdf;'
            ),
        'SYMBOLS' => array(
            0 => 'color: #993399;'
            ),
        'REGEXPS' => array(
            ),
        'SCRIPT' => array(
            )
        ),
    'URLS' => array(
        1 => '',
        2 => '',
        3 => 'http://sap4.com/wiki/index.php?title={FNAMEL}',
        4 => ''
        ),
    'OOLANG' => true,
    'OBJECT_SPLITTERS' => array(
        1 => '.',
        2 => '::'
        ),
    'REGEXPS' => array(
        ),
    'STRICT_MODE_APPLIES' => GESHI_NEVER,
    'SCRIPT_DELIMITERS' => array(
        ),
    'HIGHLIGHT_STRICT_BLOCK' => array(
        )
);

?>

----------------------------结果----------------------------------     


         1 => 'color: #4e4eff;',                    |              1 => 'color: #b1b100;',                  
              1 => 'color: #4e4eff;',                    |              2 => 'color: #000000; font-weight: bold;',
              2 => 'color: #ffffff; font-weight: bold;', |              3 => 'color: #000066;',                  
              2 => 'color: #ffffff; font-weight: bold;', |              4 => 'color: #993333;'


ly兄的针对这个文件没问题,但是另外的文件就有问题了。

[ 本帖最后由 可可熊 于 2008-11-21 16:03 编辑 ]

论坛徽章:
0
27 [报告]
发表于 2008-11-21 16:06 |只看该作者
我这里说下,我是想对http://qbnz.com/highlighter/这里这个代码高码的工具把颜色全部反转,适合用在黑色背景的网页里。
有很多针对不同语言的PHP加亮的规则文件。

两位都有一些文件不能正确的处理

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
28 [报告]
发表于 2008-11-21 16:07 |只看该作者
......我处理过的没有问题,可能sed的版本不一样.
我的是GNU sed version 4.1.5

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
29 [报告]
发表于 2008-11-21 16:09 |只看该作者
# diff 1.php 2.php
83,86c83,86
<             1 => 'color: #4e4eff;',
<             2 => 'color: #ffffff; font-weight: bold;',
<             3 => 'color: #ffff99;',
<             4 => 'color: #66cccc;'
---
>             1 => 'color: #b1b100;',
>             2 => 'color: #000000; font-weight: bold;',
>             3 => 'color: #000066;',
>             4 => 'color: #993333;'
89,91c89,91
<             1 => 'color: #7f7f7f; font-style: italic;',
<             2 => 'color: #cc66cc;',
<             'MULTI' => 'color: #7f7f7f; font-style: italic;'
---
>             1 => 'color: #808080; font-style: italic;',
>             2 => 'color: #339933;',
>             'MULTI' => 'color: #808080; font-style: italic;'
94c94
<             0 => 'color: #ffff66; font-weight: bold;'
---
>             0 => 'color: #000099; font-weight: bold;'
97c97
<             0 => 'color: #993399;'
---
>             0 => 'color: #66cc66;'
100c100
<             0 => 'color: #00ffff;'
---
>             0 => 'color: #ff0000;'
103c103
<             0 => 'color: #339933;'
---
>             0 => 'color: #cc66cc;'
106,107c106,107
<             1 => 'color: #dfdfdf;',
<             2 => 'color: #dfdfdf;'
---
>             1 => 'color: #202020;',
>             2 => 'color: #202020;'
110c110
<             0 => 'color: #993399;'
---
>             0 => 'color: #66cc66;'
没问题啊

论坛徽章:
0
30 [报告]
发表于 2008-11-21 16:13 |只看该作者

回复 #28 cjaizss 的帖子

[crystallight]$ sed --version
GNU sed version 4.1.2
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP