質問するログイン新規登録

回答編集履歴

1

補足

2021/12/06 16:52

投稿

otn
otn

スコア86367

answer CHANGED
@@ -1,7 +1,7 @@
1
1
  ファイルを読んでいる途中でそのファイルを書き換えたいと言うことですね。
2
2
 
3
3
  sedの種類によるかもしれませんが、少なくともGNU sedでは、`-i`オプションは、別ファイルに書きだした後でリネームで元のファイル名を付けます。
4
- 例えば、`sed -i 's/a/b/' foo.txt`は、`sed 's/a/b/ foo.txt > tmp;rm foo.txt;mv tmp foo.txt`と同じです。
4
+ 例えば、`sed -i 's/a/b/' foo.txt`は、`sed 's/a/b/ foo.txt > tmp;rm foo.txt;mv tmp foo.txt`と同じです(必要に応じてパーミッションなどの変更も)
5
5
 
6
6
  つまり、元のファイルを書き換えませんので、そのファイルを読んでいる別のプロセス(この場合は`main.sh`)には影響しません。
7
7