我正在清理我的代理列表中的特殊工具,它不了解包含字母字符的代理地址。所以我需要删除代理列表中包含字母的所有行。
查找字母没问题:echo "counters_2016080822.log:2016-08-08 15:55:00,10.26.x.x,SERVER@10.26.x.x,SSCM_VRC/sscm-vrc-flow-20160602,,transactions.tps,13
counters_2016080823.log:2016-08-08 23:00:00,10.26.x.x,SERVER@10.26.x.x,SSCM_VRC/sscm-vrc-flow-20160602,,transactions.tps,14
counters_2016080823.log:2016-08-08 23:05:00,10.26.x.x,SERVER@10.26.x.1x,SSCM_VRC/sscm-vrc-flow-20160602,,transactions.tps,19" | \
sed -r 's/^.*:([0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}),.*,([0-9]+)$/\1 \2/' | \
sort -n -k 3 -t ' ' | tail -n 1
可以解决问题。但是我怎么能找到/标记整条线?我应该用什么来代替包含字母的行?
答案 0 :(得分:2)
您可以使用Notepad ++标记功能。
首先打开标记对话框( Ctrl + F
并切换到Mark),检查标记行和正则表达式。然后使用模式[[:alpha:]]+
现在所有带字母的行都应该在前面有一个书签。您现在可以转到搜索 - > 书签 - > 删除已添加书签的行
答案 1 :(得分:0)
这是一个与“查找和替换”功能一起使用的解决方案,以及Notepad ++中的任何其他位置,以匹配包含字母的任何行。
将整行与ASCII字母匹配:
^.*[a-zA-Z].*$\R?
最后的\R?
也允许匹配换行符(可选)。
为了提高效率,请在开头使用[^a-zA-Z\r\n]
否定字符类:
^[^a-zA-Z\r\n]*[a-zA-Z].*$\R?
模式详情:
^
- 行首[^a-zA-Z\r\n]*
- 除ASCII字母和LF / CR以外的0个或更多字符[a-zA-Z]
- ASCII字母.*$
- 除了换行符之外的零个或多个字符,直到行尾\R?
- 可选换行此处,删除了一行333333ge3444444444
: