返回列表 发帖

context v1.1.2 获取指定行的上下文

context.js  v1.1.2  获取指定行的上下文  by [http://www.bathome.net] CrLf
cscript -nologo context.js  [options] [-f context_from] key [-k key2] [-t context_to] file ...
options:
    -c, --strictly-context
                        严格的上下文,启用此项后必须完整匹配上下文时才能输出
    -o, --overlap       允许下一次匹配的上下文与本次交叉
    -g, --global        全局匹配,不使用此项时只显示第一个匹配结果
    -e, --regexp        启用正则,把 /Pattern/Mode 格式的参数理解为正则表达式
                        例如 /(www|bbs).bathome.net/ig
    -u, --unicodefile   从文件获取输入时,用 Unicode 编码读取内容
        --unicodefile-auto     用 Unicode 编码读取失败时再尝试以 ANSI 编码读取
    -r, --repeat-option-key1   连续多行符合 key 条件时,计入同一个选区
        --repeat-option-key2   连续多行符合 key2 条件时,计入同一个选区
    -h, --help          显示这个帮助
    --version           显示版本
    -n, --number        打印行号
    --color[=attr]      彩色输出 key 匹配结果和附加信息,全局颜色开关
    --color-key[=attr]  设置 key 匹配结果高亮颜色
    --color-info[=attr] 设置前缀信息高亮颜色
    --color-path[=attr] 设置源路径高亮颜色,来源唯一时不显示路径
                        attr 可设置颜色信息,允许以下值:
                          Black  = 黑色        Blue    = 蓝色
                          Red    = 红色        Magenta = 淡紫色
                          Green  = 绿色        Cyan    = 青色
                          Yellow =黄色         White     = 白色
                        可以写成 =背景色,前景色,也可以写成 =前景色
                        例如 --color=blue,white,设置高亮颜色为 前白后蓝
                        使用 WSH 宿主运行时不会自动彩色显示
                        建议配合使用 ansicon.exe,下载地址:
                        http://www.bathome.net/s/tool/?key=ansicon&down=ansicon
    --                  不再解析后续参数
input:
    file                允许指定多个文件,支持通配符
    -                   从 stdin 获取输入
tragets:
    -f value, --context-from=value  限定上文范围(默认1),必须指定 value
    -t value, --context-to=value    限定下文范围(默认1),必须指定 value
    -k value, --key2=value          选区末端匹配条件(默认关),必须指定 value
values:
    context_from        上文范围匹配条件
    context_to          下文范围匹配条件
    key2                选区末端匹配条件
    此部分参数会根据传入值作出不同理解:
       全数字       - 第 N 行
       -数字        - 倒数第 N 行
       +数字        - 对应匹配范围前或后第 N 行,参数为 key 时不可用
       数字,数字    - 从某行和某行,仅当参数为 key 或 key2 时可用
       数字-数字    - 从某行到某行,仅当参数为 key 或 key2 时可用
       '字符串'     - 字符串,字符串匹配时建议加上单引号
       /字符串/模式 - 正则表达式,仅当启用正则表达式时可用
       其他         - 字符串
    由于宿主特性,参数中的双引号不会保留
    如需使用,建议启用 -e 后在正则表达式中用 \x22 表达
    单引号不具参数分组和转义效果,仅用于确定字符串参数
    option 部分的短开关可以合并,例如 -e -o 可简写为 -eo
examples:
    cscript -nologo context.js  -i 'test' a.txt
    在 a.txt 中查找包含 test 的行,不分大小写,并打印上下行
    dir | cscript -nologo context.js  -g 2,14-16
    在 dir 的输出中查找包含第 2 行和第 1416 行,并打印上下行
    cscript -nologo context.js  -e -f+3 "/^start$/" -k "/^end$/" -t 'to' a.txt
    查找从 start 到 end 的行,并打印其前三行和 end 之后直到包含 to 的行
    cscript -nologo context.js  --color-path=yellow /bathome/i *.txt
    查找当前路径下所有 txt 中包含 bathome 的行,并以黄色高亮文件名
    cscript -nologo context.js  --color -n 'test' a.txt | ansicon.exe
    彩显行号和 key 匹配的部分,需配合其他工具,此例使用 ansicon.exe
    cscript -nologo context.js  --help
    显示这个帮助COPY
js源码链接: https://pan.baidu.com/s/15lOJ7fnXcJUR7Ubqqu-9qg?pwd=bjwb
exe下载地址:http://www.bathome.net/s/tool/?key=context

js源码需要以 cscript 运行,--color 系列开关输出的彩色效果需使用第三方,如 ansicon,或 ansicolor
context.exe 是通过 ScriptCryptor 封装的版本 ,效果和脚本相同通用,可能会被报毒
ncontext.exe 是通过 jsc 编译的版本,原生支持彩色显示,但需要 .Net2.0 或以上环境
2

评分人数

顺便编译个副产品 ansicolor:http://www.bathome.net/viewthread.php?tid=37862

TOP

小改一个bug,就不换版本号了

TOP

返回列表