1. ホーム
  2. bash

[解決済み] BASH、cat Buffer

2022-03-05 10:16:42

質問

cat report.txt | sed 's/<\/li>/<\/li> \n/g' > report.txt

これは明らかに空のファイルになります。

データを保存してから処理したり、コマンドの実行が終わるまで出力を保存しておいてからファイルを書き込むような仕組みはないのでしょうか。

http://en.wikipedia.org/wiki/Pipeline_(Unix)#Implementation :

受信側のプログラムは1秒間に100バイトしか受け付けないかもしれませんが、データが失われることはありません。その代わり、送信側プログラムの出力はキューに保持される。受信プログラムがデータを読む準備ができると、OSはそのデータをキューから送信し、その後そのデータをキューから削除します"

これをすぐにファイルに書き込むのではなく、キューにロードし、コマンド終了後にアンロードする簡単なトリックがあるべきように聞こえますが?

ありがとうございました。

解決方法は?

を編集する必要があります。 所定の位置に :

sed -i 's/<\/li>/<\/li> \n/g' report.txt