bash シェルで 1 つの文字列を少なくとも 1 つのスペースで区切られた複数の文字列に分割するにはどうすればよいでしょうか? 質問する

bash シェルで 1 つの文字列を少なくとも 1 つのスペースで区切られた複数の文字列に分割するにはどうすればよいでしょうか? 質問する

複数の単語が含まれ、各単語の間に少なくとも 1 つのスペースがある文字列があります。文字列を個々の単語に分割してループ処理するにはどうすればよいでしょうか。

文字列は引数として渡されます。例${2} == "cat cat file": どうすればループできますか?

また、文字列にスペースが含まれているかどうかを確認するにはどうすればよいでしょうか?

ベストアンサー1

個々の要素にアクセスできるように、配列に変換するのが気に入っています。

sentence="this is a story"
stringarray=($sentence)

これで、個々の要素に直接アクセスできるようになりました (0 から始まります)。

echo ${stringarray[0]}

またはループするために文字列に戻します:

for i in "${stringarray[@]}"
do
  :
  # do whatever on $i
done

もちろん、文字列を直接ループする方法は以前にも回答されていますが、その回答には、後で使用するために個々の要素を追跡しないという欠点がありました。

for i in $sentence
do
  :
  # do whatever on $i
done

参照Bash 配列リファレンス

おすすめ記事