2016-08-12 12 views
-2

私はテストファイルを持っています。内容がこのようなものだとします。私はこれをシェルスクリプトの "セミコロン"で区切られた配列に入れたいと思っていますシェルスクリプトで配列にセミコロンで区切られた文字列をロードする

歴史は、過去の出来事に関する情報の発見、収集、構成、分析、提示です。歴史とは、典型的には連続的であることを意味する。重要または公的な出来事、または特定の傾向または施設の年代順の記録。歴史について書いている奨学生は、歴史家と呼ばれています。これは、ナラティブを使って事象のシーケンスを調べ、分析する知識の分野です。イベントを決定する原因と結果のパターンを客観的に調査しようとする場合があります。

array[0]含まれている必要があります:期待される出力は

歴史が発見、収集、組織化、分析、および過去のイベントに関する情報の提示です。歴史とは、典型的には連続的であることを意味する。

array[1]が含まれている必要があります重要または公共のイベントや特定の傾向や施設の

時系列記録。歴史について書いている奨学生は、歴史家と呼ばれています。これは、ナラティブを使って事象のシーケンスを調べ、分析する知識の分野です。

、それが時には客観的事象を決定し、原因と結果のパターンを調査しようとします。:

array[3]が含まれている必要がありますロジックがどうなるか、このようなど

....以下のbashのために書かれていること

+0

'array [1]'は 'array'という名前の配列の2番目の要素を出力しません。 $ {array [1]}のように$ {array [1]}となりますか? –

+0

はい、それは$ {array [0]}、$ {array [1]} ... – abhisek

+0

BTW、normal POSIX shは配列をまったくサポートしていないので、このために別のシェルが必要だと思います - ksh?bash?正確なプラットフォームを指定できますか? –

答えて

0

注なく、POSIXのSH(配列をサポートしていません)。


あなたがそうのようにコンテンツをロードする場合:...

array=() 
while IFS= read -r -d ';' content; do 
    array+=("${content};") 
done <input.txt 

その後、

echo "First section: ${array[0]}" 
echo "Second section: ${array[1]}" 

を...と意図した通りなどに動作します。これは、bash read -d拡張子が、次の文字をレコードの終わりの区切り文字として扱い、その点まで読み込みが進行するためです。 bashでファイルの内容を読み込むの詳細について


BashFAQ #1を参照してください(「どのように私はファイル(データ・ストリーム、変数を読むことができる)ライン・バイ・ライン(および/またはフィールドごとの)?」) 。

+0

ありがとう..それは働いている:) – abhisek

関連する問題