我怎么可以grep变量复杂的字符串? [英] How can I grep complex strings in variables?
本文介绍了我怎么可以grep变量复杂的字符串?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想对grep在一个更大的字符串,一小串。这两个字符串被存储为变量,这里是一个code例如:
#!/斌/庆典long_str = $(MAN MAN)
shrt_str =指南如果grep的-q $ shrt_str $ long_str;然后
回声找到了!
科幻
我不认为变量扩展工作,我希望它的方式。我曾尝试 []
和 [[]]
,也引用变量和输出管道,以的/ dev / null的
但无论我做什么,它不会工作。
有没有人有什么想法?
解决方案
回声$ long_str| grep的-q$ shrt_str
如果[$? -eq 0];然后
回声发现
科幻
或
回声$ long_str|的grep -q$ shrt_str与&&放大器;回声发现||回声找不到
但因为你正在使用bash shell中,然后利用壳内部。不需要调用外部命令
shrt_str =指南
案$ long_str中
*$ shrt_str*)回声找到;;
*)回声未找到;;
ESAC
I am trying to grep for a small string in a much larger string. Both strings are being stored as variables and here is a code example:
#!/bin/bash
long_str=$(man man)
shrt_str="guide"
if grep -q $shrt_str $long_str ; then
echo "Found it!"
fi
I don't think variable expansion is working the way I expect it to. I have tried [ ]
and [[ ]]
, also quoting the variables and piping the output to /dev/null
but no matter what I do it won't work.
Does anyone have any ideas?
解决方案
echo "$long_str" | grep -q "$shrt_str"
if [ $? -eq 0 ];then
echo "found"
fi
or
echo "$long_str" | grep -q "$shrt_str" && echo "found" || echo "not found"
But since you are using bash shell, then use shell internals. No need to call external commands
shrt_str="guide"
case "$long_str" in
*"$shrt_str"* ) echo "Found";;
* ) echo "Not found";;
esac
这篇关于我怎么可以grep变量复杂的字符串?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文