前言
对于我这种平时喜欢钻研命令行工具给自己的工作提升效率的人来说,遇到一个好的命令行工具会觉得异常的珍惜。命令行不仅能给自己的工作和生活带来便利,还能给自己不错的成就感,毕竟在大家印象中的“黑客”都是通过命令行干“大事”的,哈哈哈。话不多说,今天给大家带来一个我自己开发的,觉得非常实用的一款命令行工具:pattern
命令行基本描述
功能描述:通过正则表达式匹配查找、替换输入流或者输入字符串中的内容
运行环境:Linux、WIndows 7/8/10
效率提升: 100% 上手难度: 50%
使用优点: 原理简单,逻辑清晰,配合其他命令行工具能发挥出极大的效能
为了解决什么问题而开发?
输出匹配的字符串内容
与grep不同,这个功能是仅输出正则表达式匹配字段的内容;对于仅需要匹配字符串而不是整个行内容的命令行需求会很有用;例如在一堆数据中包含了一个版本号,下一个命令需要用到这个版本号时,便可使用这个命令将这个版本号输出作为下一个命令行的输入;输出匹配的行
这个功能基本跟grep命令类似,输出包含匹配字符串行的内容;插入内容
在配置文件或者流的匹配字段【前/后】插入特定内容,这对于修改配置文件会很有用,例如在配置文件的某个字段前或者后加入一项内容;替换字符串
在文件或者流中通过正则表达式匹配替换字符串为想要的字符串,同样在修改配置文件时会很有用;例如在配置文件中将某个字段替换为想要的内容;
有哪些功能?
C:\Windows\System32>pattern -h
usage: pattern [-h] [-f filename] -p PATTERN [-r REPLACEMENT] [-m {0,1,2,3,4,5,6}]
正则表达式命令行工具
optional arguments:
-h, --help show this help message and exit
-f filename, --filename filename
目标文件名,如果未提供文件则运行为流模式
-p PATTERN 正则匹配表达式
-r REPLACEMENT 需要替换成字符串的值(mode等于3、4、5时忽略)
-m {0,1,2,3,4,5,6}, --mode {0,1,2,3,4,5,6}
模式选择: 0(输出匹配的行,default), 1(前边插入), 2(后边插入), 3(输出匹配字符串), 4(输出第一个匹配的字符串), 5(输出所以匹配的字符串),
6(替换模式, 输出替换后的字符串)
源码地址
https://github.com/JerryQch/Pattern
使用示例
- 模式0
ls -l | pattern -p "Nov"
这个模式与grep用法类似
- 模式1 - 在匹配字段前端插入
pattern -f config.xml -p "</driverVer>" -r "1.0.0" -m 1
- 模式2 - 在匹配字段后端插入
pattern -f config.xml -p "</driverVer>" -r "1.0.0" -m 2
- 模式3 - 输出匹配字段
pattern -f config.xml -p "[0-9.]{5}" -m 3
- 模式6 - 替换匹配字段
pattern -f config.xml -p "[0-9.]{5}" -r "2.0.0" -m 6