微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

bash可能会使用perl / python:通过正则expression式过滤空格分隔的arg列表

我有一组正则expression式应该在空格分隔列表中的每个项目进行testing。

我希望这些物品能够在其中有空间,将逃脱。 所以:

abc def ghi jkl abc

包含4个项目, abc , def ghi , jkl和abc 。

如果我的正则expression式是

sorting范围Linux

将awk输出保存到variables

pipe道文件在Windows上传到哪里?

转换只包含特定标签的XML

如何根据第六栏的内容来勾选行

b k$ ^g

输出应该是

abc abc

看起来像grep -f可以让我在那里大部分的方式,但我必须处理的方式来处理逃脱的空间,所以我不能只是从空间到新行。

编辑:我想我可以使用sed来做一个逃脱空间意识到replace正常空间换行。 从换行符开始, tr就足够了。 想知道是否有人有更好的想法。

将信号捕获到进程组

如何检查sshd是否在远程机器上运行

以root身份编辑后以root身份保存文件

在sed中添加前导0

从linux shell脚本调用Rscript

我真的不明白你的物品是如何给的。

假装他们来自一个程序之谜的输出,在一行中,例如,

gnIoUrf@somewhere$ mystery abc def ghi jkl abc

你可以(文件myscript ):

#!/bin/bash output=() re=( 'b' 'k$' '^g' ) # array of your regexes read -aa 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 mystery myscript ):

gnIoUrf@somewhere$ ./mystery abc def ghi jkl abc gnIoUrf@somewhere$ ./mystery | ./myscript abc abc

警惕 。 这将迟早会破,除非神秘总是输出体面的东西!

我认为它可以在没有任何外部效用的情况下进行处理。

首先把你的字符串放在一个数组中:

input=(abc 'def ghi' jkl abc)

然后运行这个for循环来验证你提供的正则表达式的输入:

for i in "${input[@]}"; do for r in 'b' 'k$' '^g'; do [[ "$i" =~ $r ]] && echo $i && break done done

OUTOUT:

abc abc

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐