Board logo

标题: context v1.1.2 获取指定行的上下文 [打印本页]

作者: CrLf    时间: 2015-10-30 06:20     标题: context v1.1.2 获取指定行的上下文

  1. context.js  v1.1.2  获取指定行的上下文  by [http://www.bathome.net] CrLf
  2. cscript -nologo context.js  [options] [-f context_from] key [-k key2] [-t context_to] file ...
  3. options:
  4.     -c, --strictly-context
  5.                         严格的上下文,启用此项后必须完整匹配上下文时才能输出
  6.     -o, --overlap       允许下一次匹配的上下文与本次交叉
  7.     -g, --global        全局匹配,不使用此项时只显示第一个匹配结果
  8.     -e, --regexp        启用正则,把 /Pattern/Mode 格式的参数理解为正则表达式
  9.                         例如 /(www|bbs).bathome.net/ig
  10.     -u, --unicodefile   从文件获取输入时,用 Unicode 编码读取内容
  11.         --unicodefile-auto     用 Unicode 编码读取失败时再尝试以 ANSI 编码读取
  12.     -r, --repeat-option-key1   连续多行符合 key 条件时,计入同一个选区
  13.         --repeat-option-key2   连续多行符合 key2 条件时,计入同一个选区
  14.     -h, --help          显示这个帮助
  15.     --version           显示版本
  16.     -n, --number        打印行号
  17.     --color[=attr]      彩色输出 key 匹配结果和附加信息,全局颜色开关
  18.     --color-key[=attr]  设置 key 匹配结果高亮颜色
  19.     --color-info[=attr] 设置前缀信息高亮颜色
  20.     --color-path[=attr] 设置源路径高亮颜色,来源唯一时不显示路径
  21.                         attr 可设置颜色信息,允许以下值:
  22.                           Black  = 黑色        Blue    = 蓝色
  23.                           Red    = 红色        Magenta = 淡紫色
  24.                           Green  = 绿色        Cyan    = 青色
  25.                           Yellow =黄色         White     = 白色
  26.                         可以写成 =背景色,前景色,也可以写成 =前景色
  27.                         例如 --color=blue,white,设置高亮颜色为 前白后蓝
  28.                         使用 WSH 宿主运行时不会自动彩色显示
  29.                         建议配合使用 ansicon.exe,下载地址:
  30.                         http://www.bathome.net/s/tool/?key=ansicon&down=ansicon
  31.     --                  不再解析后续参数
  32. input:
  33.     file                允许指定多个文件,支持通配符
  34.     -                   从 stdin 获取输入
  35. tragets:
  36.     -f value, --context-from=value  限定上文范围(默认1),必须指定 value
  37.     -t value, --context-to=value    限定下文范围(默认1),必须指定 value
  38.     -k value, --key2=value          选区末端匹配条件(默认关),必须指定 value
  39. values:
  40.     context_from        上文范围匹配条件
  41.     context_to          下文范围匹配条件
  42.     key2                选区末端匹配条件
  43.     此部分参数会根据传入值作出不同理解:
  44.        全数字       - 第 N 行
  45.        -数字        - 倒数第 N 行
  46.        +数字        - 对应匹配范围前或后第 N 行,参数为 key 时不可用
  47.        数字,数字    - 从某行和某行,仅当参数为 key 或 key2 时可用
  48.        数字-数字    - 从某行到某行,仅当参数为 key 或 key2 时可用
  49.        '字符串'     - 字符串,字符串匹配时建议加上单引号
  50.        /字符串/模式 - 正则表达式,仅当启用正则表达式时可用
  51.        其他         - 字符串
  52.     由于宿主特性,参数中的双引号不会保留
  53.     如需使用,建议启用 -e 后在正则表达式中用 \x22 表达
  54.     单引号不具参数分组和转义效果,仅用于确定字符串参数
  55.     option 部分的短开关可以合并,例如 -e -o 可简写为 -eo
  56. examples:
  57.     cscript -nologo context.js  -i 'test' a.txt
  58.     在 a.txt 中查找包含 test 的行,不分大小写,并打印上下行
  59.     dir | cscript -nologo context.js  -g 2,14-16
  60.     在 dir 的输出中查找包含第 2 行和第 14 到 16 行,并打印上下行
  61.     cscript -nologo context.js  -e -f+3 "/^start$/" -k "/^end$/" -t 'to' a.txt
  62.     查找从 start 到 end 的行,并打印其前三行和 end 之后直到包含 to 的行
  63.     cscript -nologo context.js  --color-path=yellow /bathome/i *.txt
  64.     查找当前路径下所有 txt 中包含 bathome 的行,并以黄色高亮文件名
  65.     cscript -nologo context.js  --color -n 'test' a.txt | ansicon.exe
  66.     彩显行号和 key 匹配的部分,需配合其他工具,此例使用 ansicon.exe
  67.     cscript -nologo context.js  --help
  68.     显示这个帮助
复制代码
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 或以上环境
作者: CrLf    时间: 2015-10-30 06:34

顺便编译个副产品 ansicolor:http://www.bathome.net/viewthread.php?tid=37862
作者: CrLf    时间: 2015-10-30 07:15

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




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2