linux – bash(可以使用perl / python):通过正则表达式过滤空格
发布时间:2020-12-13 22:54:55 所属栏目:Linux 来源:网络整理
导读:我有一组正则表达式,应该针对空格分隔列表中的每个项目进行测试. 我希望这些项目能够在其中包含将被转义的空格.所以: abc def ghi jkl abc 由4个项目组成,abc,def ghi,jkl和abc. 如果我的一套正则表达式是 bk$^g 输出应该是 abc abc 似乎grep -f可以让我在
我有一组正则表达式,应该针对空格分隔列表中的每个项目进行测试.
我希望这些项目能够在其中包含将被转义的空格.所以: abc def ghi jkl abc 由4个项目组成,abc,def ghi,jkl和abc. 如果我的一套正则表达式是 b k$ ^g 输出应该是 abc abc 似乎grep -f可以让我在那里大部分时间,但我必须处理一个处理转义空间的方法,所以我不能只是从空间到换行符. 编辑:我想我可以使用sed做一个转义空间感知的常规空格替换到换行符.在从换行符回来的路上,tr就足够了.想知道是否有人有更好的想法. 解决方法
我真的不明白你的物品是如何给出的.
假装它们来自程序之谜的输出,在一行中,例如, gniourf@somewhere$mystery abc def ghi jkl abc 你可以(文件myscript): #!/bin/bash output=() re=( 'b' 'k$' '^g' ) # array of your regexes read -a a for w in "${a[@]}"; do for r in "${re[@]}"; do if [[ $w =~ $r ]]; then output+=( "${w// / }" ) # replace space with backslash-space break fi done done echo "${output[@]}" 出于测试目的,我做了这个: #!/bin/bash # file mystery echo 'abc def ghi jkl abc' 然后(在chmod x之后神秘的myscript): gniourf@somewhere$./mystery abc def ghi jkl abc gniourf@somewhere$./mystery | ./myscript abc abc 警告.这迟早会破裂,除非神秘总是输出不错的东西! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |