-1

Macの端末で作業しているときに、文字列内に単語が存在するかどうかをどのように見つけることができるのでしょうか。単語とスペースを含む文字列を含む変数「a」と、単語を含む変数「b」があるとします。ifを介して、「b」という単語が「a」に含まれているか、「a」の単語の1つに含まれているかを確認したいと思います。ありがとう!

4

2 に答える 2

4

==でパターンマッチングを使用できます[[ ... ]]

#!/bin/bash
a='I was wondering how, working on terminal on a Mac, can I find if a word is present inside a string.'
b=Mac
if [[ $a == *$b* ]] ; then
    echo Found.
fi
于 2013-03-15T12:23:34.567 に答える
0

使用するgrep

$ a='I was wondering how, working on terminal on a Mac, can I find if a word is present inside a string.'
$ b='Mac'
$ c='xxx'

$ grep -q $b <<< $b
$ echo $?
0

$ grep -q $c <<< $c
$ echo $?
1

からman grep

-q, --quiet, --silent
         Quiet;   do   not  write  anything  to  standard  output.   Exit
         immediately with zero status if any match is found

ifステートメントに入れるには、次を使用します

if grep -q foo <<< $string; then
    echo "It's there"
fi

または、正規表現ソリューションを好む場合:

string='My string';

if [[ $string =~ .*My.* ]]
then
   echo "It's there!"
fi

または、caseステートメントを使用します。

case "$string" in 
  *My*)
           echo match
    ;;
esac
于 2013-03-15T12:42:27.490 に答える