[[diary/Kojima]]

・覚え書き  sed の -i オプション

まぁ、-i オプションの動きを考えてみればそんなものかと思うけど、ちょっとハマったので。

 % echo "ABC" > file1
 % ln -sf file1 file2
 % ls -l
 合計 8,192
 -rw-r--r-- 1 kojima users 4 11月 20日  13:36 file1
 lrwxrwxrwx 1 kojima users 5 11月 20日  13:36 file2 -> file1
 
 % sed -i -e 's/ABC/DEF/' file2
 % ls -l
 合計 8,192
 -rw-r--r-- 1 kojima users 4 11月 20日  13:36 file1
 -rw-r--r-- 1 kojima users 4 11月 20日  13:36 file2   <= symlink が切れて file2 が独自になる
 % cat file1
 ABC             <= file1 はそのまま
 % cat file2
 DEF             <= file2 は修正される

sed のソースは眺めてないけど、多分 -i オプションの動作は、一時ファイルに結果を書き出して、一時ファイルを元のファイル名にする(必要ならば元のファイルはバックアップにする)、
みたいな処理になっているんだろうな。

#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS