タブ区切りのファイル行を配列に読み込む
2023-09-02 23:23:46
質問
スクリプトにファイルを一行ずつ読み込ませたい。ファイルの各行はタブで区切られた複数の値なので、各行を配列に読み替えたいと思います。
典型的なbashの"read file by line"の例です。
while read line
do
echo $line;
done < "myfile"
私の場合、myfileはこのようになります(タブ区切りの値)。
value1 value2 value3
value4 value5 value6
ループの各反復において、各行を配列に格納することで、以下のことが可能になります。
while read line into myArray
do
echo myArray[0]
echo myArray[1]
echo myArray[2]
done < "myfile"
これは、最初のループの繰り返しで次のように表示されます。
value1
value2
value3
そして、2回目の繰り返しで、次のように表示されます。
value4
value5
value6
これは可能ですか?私が見ることができる唯一の方法は、手動で値を分割する小さな関数を書くことですが、これのためのbashの組み込みサポートはありますか?
どのように解決するのですか?
あと少しです。
while IFS=$'\t' read -r -a myArray
do
echo "${myArray[0]}"
echo "${myArray[1]}"
echo "${myArray[2]}"
done < myfile
(この
-r
は
read
その
\
は入力データの中で特別なものではありません。
-a myArray
は、入力行を単語に分割し、その結果を
myArray
に格納します。
IFS=$'\t'
は、通常のBashのデフォルトである空白も単語の分割に使用するのではなく、タブのみを使用して単語を分割するように指示します。このアプローチでは、1つの
またはそれ以上の
を区切り文字として扱うので、もしフィールドが空白の場合、後のフィールドは配列の前の位置に "シフト"されることに注意してください。それは O.K.でしょうか?)
関連
-
[解決済み] Luaで2次元配列を作成するには?
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み] 配列の項目を別の配列にコピーする
-
[解決済み] Bashで文字列を配列に分割する方法は?
-
[解決済み] Colorized grep -- マッチをハイライトしてファイル全体を表示する
-
[解決済み] シェル(BASH/ZSH/SH)でファイルの絶対パスを取得する方法を教えてください。
-
[解決済み] Postgres の配列の NOT
-
[解決済み] 配列のインデックスやキーをチェックする最も簡単な方法とは?
-
[解決済み] TypeScript型付き配列の使用法
-
ユニフォームのGLSL配列の作成?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] MIPSで宣言された配列からの印刷
-
[解決済み] 猫の無駄遣い?
-
[解決済み] 数百万のピクセルを持つ2Dの非ボックス化ピクセル配列にはどのようなHaskell表現が推奨されますか?
-
[解決済み] 並べ替えられた2つの配列の和で、k番目に小さい要素を見つけるにはどうすればよいですか?
-
[解決済み] Swiftのクロージャで$0と$1は何を意味するのか?
-
[解決済み] AngularJSカスタムフィルタ機能
-
[解決済み] Rustでスライスを配列として取得するには?
-
[解決済み] Swiftで空の配列の辞書を初期化する
-
[解決済み] 文字列のマッチ数をカウントするPerlのショートカットはありますか?
-
BashでMutableなリストや配列構造?どのように私はそれに簡単に追加することができますか?