我有一组正则expression式应该在空格分隔列表中的每个项目进行testing。
我希望这些物品能够在其中有空间,将逃脱。 所以:
abc def ghi jkl abc
包含4个项目, abc , def ghi , jkl和abc 。
如果我的正则expression式是
sorting范围Linux
将awk输出保存到variables
转换只包含特定标签的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 举报,一经查实,本站将立刻删除。