我想要以下内容:
案例是(白色空间被强调):
___x____xxx___x__x__xxxxx_xxxx_xx (1)
__xx____xxx___x__x__xxxxx_xxxx_xx (2)
_xxx____xxx___x__x__xxxxx_xxxx_xx (3)
xxxx____xxx___x__x__xxxxx_xxxx_xx (4)
Ant匹配的空格应如下所示:
___x____xxx___x__x__xxxxx_xxxx_xx (1)
___ ____ ___ __ __ (regex match)
__xx____xxx___x__x__xxxxx_xxxx_xx (2)
__ ____ ___ __ __ (regex match)
_xxx____xxx___x__x__xxxxx_xxxx_xx (3)
_ ____ ___ __ __ (regex match)
xxxx____xxx___x__x__xxxxx_xxxx_xx (4)
____ ___ __ __ (regex match)
我将使用此正则表达式使用bash awk
命令读取日志文件,因此如果存在unix特定的正则表达式,则可以。
我试过了:
^[ ]{1,}[A-Z0-9]+[ ]{2,} --> not match
^[ ]{1,}[ ]{2,} --> not match
(^[ ]{1,})[ ]{2,} --> not match
答案 0 :(得分:1)
您可以使用此awk
在2个以上的空格中分割输入字段并打印每个字段:
awk -F '[[:blank:]]{2,}' '{
for (i=1; i<=NF; i++) if ($i != "") print $i; print "========================"}' file
我添加了一个用于显示记录中断的分隔线。
<强>输出:强>
x
xxx
x
x
xxxxx xxxx xx
========================
xx
xxx
x
x
xxxxx xxxx xx
========================
xxx
xxx
x
x
xxxxx xxxx xx
========================
xxxx
xxx
x
x
xxxxx xxxx xx
========================