我如何在UNIX中的单个单词上使用grep?

时间:2010-10-08 02:46:49

标签: bash unix shell

我想在unix中运行一个脚本,它将在传递的参数中查找特定的模式。在所有情况下,论证都是一个单词。我不能使用grep,因为grep只能用于搜索文件。有没有更好的unix命令可以帮助我?

6 个答案:

答案 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运算符=〜

结帐http://aplawrence.com/Linux/bash-regex.html

答案 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