[解決済み】Rubyでファイルの行を読み込む方法
2022-04-04 08:04:30
質問
以下のコードを使って、ファイルから行を読み込もうとしていました。しかし ファイル の場合、内容が1行にまとまってしまいます。
line_num=0
File.open('xxx.txt').each do |line|
print "#{line_num += 1} #{line}"
end
しかし、この ファイル は各行を別々に表示します。
のようにstdinを使用する必要がありますね。
ruby my_prog.rb < file.txt
ここで、ファイルが使用する行末文字が何であるかを仮定することはできません。どのように処理すればよいのでしょうか?
どのように解決するのですか?
の両方が存在するため、あらゆる種類の改行の処理に関する新しい懸念は、私の回答でカバーできると思います。
"\r\n"
と
"\r"
はLinux標準の
"\n"
行を解析する前に
をサポートするために
"\r"
EOL 文字は、通常の
"\n"
と
"\r\n"
をWindowsから利用する場合は、以下のようになります。
line_num=0
text=File.open('xxx.txt').read
text.gsub!(/\r\n?/, "\n")
text.each_line do |line|
print "#{line_num += 1} #{line}"
end
もちろん、これはファイル全体をメモリに読み込むことになるので、非常に大きなファイルでは悪いアイディアかもしれません。
関連
-
[解決済み】Ruby: 特定のバージョンのruby gemをインストールする方法は?
-
[解決済み] Rubyのswitch文の書き方
-
[解決済み] Rubyで配列に値が存在するかどうかを確認する方法
-
[解決済み] Rubyからシェルコマンドを呼び出す方法
-
[解決済み] Rubyでnilとemptyとblankを理解する方法
-
[解決済み] Rubyで文字列を小文字・大文字に変換する方法
-
[解決済み] Rubyのattr_accessorとは何ですか?
-
[解決済み] Ruby on Railsで現在の絶対URLを取得するにはどうすればよいですか?
-
[解決済み] Rubyでファイルに書き込むには?
-
[解決済み】Rubyで複数行の長い文字列を改行せずに分割する方法
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】未定義のメソッド(NoMethodError)ruby
-
[解決済み] Rubyのメソッド'to_sym'は何をするのですか?
-
[解決済み] Rubyのフィボナッチ数列(再帰)
-
[解決済み] git, Heroku: pre-receive フックの減少
-
[解決済み] Ruby で Fixnum から String への暗黙の変換ができない (TypeError)
-
[解決済み] rubyでto_yamlに書式オプションを指定することはできますか?
-
[解決済み] Railsアプリでhttpartyを使用して基本認証を使用するには?
-
[解決済み] rvmのインストールがうまくいきません。"RVMは機能ではありません"
-
[解決済み] Ruby 2.0.0p0 IRB警告。"DLは非推奨です。Fiddleをお使いください。"
-
[解決済み】Rubyでファイルを読み込む一般的な方法はすべて何ですか?