bashで配列から、特定の要素を抽出する

OKWave

2007-10-23 14:00

bashで配列から、特定の要素を抽出する。

echo ${array[0]}
This is a pen.
echo ${array[1]}
There is a cat.
echo ${array[2]}
Who are you?
echo ${array[3]}
Can I help you?

などと、要素数は任意で
各要素に任意の文章が入っている
配列があるとき、
特定の文字列の間の要素のみを取り出して
別の配列に入れるという処理をbashで行いたいです。

具体的に、上記の例ですと
要素1と要素2だけを抽出し
新たな配列 newarrayに入れ


echo ${newarray[0]}
There is a cat.
echo ${newarray[1]}
Who are you?

としたいです。

どのように処理したらよろしいでしょうか?
よろしければ、知恵をお貸し願えたらと思います。

良回答

そのまま答えても勉強にならないでしょうし
(全部書くのが面倒だと言ううわさも)
ヒントだけ書きます。

考えてわからない場合には、具体的にどこがわからないかを
書いて質問してみてください。


#!/bin/sh

array[0]=abc
array[1]=def
array[2]=ghi
array[3]=jkl
array[4]=mno
array[5]=pqr
array[6]=stu

i=0

for num in ${array[@]};do

/bin/echo ${num}
/bin/echo $i

i=$((i + 1))

done

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ZDNET Japan クイックポール

注目している大規模言語モデル(LLM)を教えてください

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]