• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:UNIX: catコマンドで無限ループ???)

UNIX: catコマンドで無限ループの原因と対処法

このQ&Aのポイント
  • catコマンドを使用してテキストファイルを追記しようとすると、無限ループになり巨大なファイルが生成される現象が起こります。
  • この現象は、catコマンドによってファイルの内容を表示する際に、その内容を再度ファイルに追記しようとするためです。
  • この問題を解決するには、catコマンドの代わりにテキストエディタを使用し、コピー&ペーストによってファイルを追記する方法を取ると良いでしょう。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

cat a.txt >> a.txt とすると、 まず現在のa.txtの内容を読み出し、a.txtに追記されます。 すると、 aaa\n (←次はここから読み込まれる)(catにより、追加されている→) aaa\n となります。ファイルには続きがあるので、それが読み込まれてa.txtに追記されます aaa\naaa\n (←次はここから読み込まれる)(上の続きで追加されている→) aaa\n まだファイルの続きがあるので読み込まれて追記されます.以下同様 これが延々と続く理由です。 出力を別のファイルにするとか cat a.txt a.txt > b.txt 別のファイルにコピーしてから追記するとか cp a.txt c.txt cat c.txt >> a.txt

TYWalker
質問者

お礼

ありがとうございます! 納得いきました!

その他の回答 (2)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

sed 2q a.txt >> a.txt でできちゃったりして.

TYWalker
質問者

お礼

sedですか。これもかっこいいですね! ありがとうございます!

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

ぱっと思いつくものは標準出力経由での書き込み cat a.txt | tee -a a.txt

TYWalker
質問者

お礼

ありがとうございます!

関連するQ&A