标题: context v1.1.2 获取指定行的上下文 [打印本页]
作者: CrLf 时间: 2015-10-30 06:20 标题: 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 行和第 14 到 16 行,并打印上下行
-
- 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
- 显示这个帮助
复制代码
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 |