Check

perl -pi -e 's/(.)/$1/' hoge.txtで中身が空になる

| | コメント(2) | トラックバック(0)
どうやらcolinuxのcofs上でperl -piするとファイルの中身がきえるっぽい。
(確認したのはandLinuxだけど)

最初正規表現がおかしいかと思ってあせった。
なんかファイルシステムに依存するコードなのかな?

トラックバック(0)

このブログ記事を参照しているブログ一覧: perl -pi -e 's/(.)/$1/' hoge.txtで中身が空になる

このブログ記事に対するトラックバックURL: http://0-9.sakura.ne.jp/mt/mt-tb.cgi/600

コメント(2)

消えたのではなくて,最後の一文字に置き換えられてます.
's/(.*)/$1/'との違いに注意してください.

ありがとうございます。

正規表現は適当なので気にしないでください。
具体的な状況としては以下のようになります。

# 通常の環境(andLinux内のext3)
$ echo 'aaa' > hoge.txt
$ perl -pi -e 's/(.)/$1/' hoge.txt
$ cat hoge.txt
aaa
$

# cofs環境(上記と同じOSのcofs)
$ echo 'aaa' > hoge.txt
$ perl -pi -e 's/(.)/$1/' hoge.txt
$ cat hoge.txt
$

ただ、そこまで追ってないのでもしかしたら手元の環境が特殊なのかもしれません。
(andLinux+Vista NTFSで確認しました)

コメントする