[解決済み】Bashでスペースで区切られた文字列を配列に読み込む
2022-04-01 23:04:07
質問
スペースで区切られた文字列を格納する変数があります。
line="1 1.50 string"
その文字列をスペースをデリミターとして分割し、結果を配列に格納したいのですが、以下のようになります。
echo ${arr[0]}
echo ${arr[1]}
echo ${arr[2]}
出力
1
1.50
string
どこかで、うまくいかない解決策を見つけました。
arr=$(echo ${line})
この後、上のecho文を実行すると、こうなります。
1 1.50 string
[empty line]
[empty line]
また、私は
IFS=" "
arr=$(echo ${line})
を実行しても、同じ結果になります。誰か助けてください。
解決方法は?
文字列を配列に変換するには、文字列から配列を作成し、文字列を
IFS
(Internal Field Separator)変数で、デフォルトではスペース文字になっています。
arr=($line)
の標準入力に文字列を渡すか、あるいは
read
コマンドを使用して
ここ
(
<<<
) 演算子を使用します。
read -a arr <<< "$line"
最初の例では、重要なのは
ではなく
を引用符で囲むことで
$line
これは、文字列が複数の要素に分割されることを可能にするものだからです。
こちらもご覧ください。 https://github.com/koalaman/shellcheck/wiki/SC2206
関連
-
[解決済み] C言語で**は何をするのですか?[重複しています]
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み] Bashで文字列変数を連結する方法
-
[解決済み] Bashで文字列が部分文字列を含むかどうかをチェックする方法
-
[解決済み] Bashで文字列をデリミターで分割するには?
-
[解決済み] Bashで文字列の配列をループする?
-
[解決済み] Bashで文字列を小文字に変換する方法は?
-
[解決済み] Bashで文字列を配列に分割する方法は?
-
[解決済み】オブジェクトの配列を文字列のプロパティ値でソートする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 代入A(:)=Bにおいて、AとBの要素数は同じでなければならない
-
[解決済み] 引数として渡された配列のサイズ取得
-
[解決済み] デリミタを使って文字列をスライスする方法
-
[解決済み] Merge Sortの最悪のケースはどのような場合に発生するのでしょうか?
-
[解決済み】Swiftで配列を連結またはマージするにはどうすればよいですか?
-
[解決済み】JSONのオブジェクトの配列をYAMLで表現したもの
-
[解決済み】Swiftで配列から要素を削除する方法
-
[解決済み】Bashで配列の要素を別行動で表示する?
-
[解決済み】Scalaでリストの末尾に要素を追加する方法
-
[解決済み】Swiftの配列の代入が矛盾している(参照でも深層コピーでもない)理由はあるのか?)