我想在unix中运行一个脚本,它将在传递的参数中查找特定的模式。在所有情况下,论证都是一个单词。我不能使用grep,因为grep只能用于搜索文件。有没有更好的unix命令可以帮助我?
答案 0 :(得分:5)
Grep可以搜索文件,也可以在stdin上运行:
$ echo "this is a test" | grep is this is a test
答案 1 :(得分:2)
根据您正在做的事情,您可能更喜欢使用bash模式匹配:
# Look for text in $word
if [[ $word == *text* ]]
then
echo "Match";
fi
或正则表达式:
# Check is $regex matches $word
if [[ $word =~ $regex ]]
then
echo "Match";
fi
答案 2 :(得分:1)
您也可以使用case/esac
。无需调用任何外部命令(适用于您的情况)
case "$argument" in
*text* ) echo "found";;
esac
答案 3 :(得分:0)
从bash 3.0开始,它有一个内置的regexp运算符=〜
答案 4 :(得分:0)
if echo $argument | grep -q pattern
then
echo "Matched"
fi
答案 5 :(得分:0)
我的档案是:
$ cat > log
loga
hai how are you loga
hai
hello
loga
我的命令是:
sed -n '/loga/p' log
我的回答是:
loga
hai how are you loga
loga