Why a linux redirect truncates the file?

后端 未结 3 1929
情话喂你
情话喂你 2021-01-22 23:31

I have a file called \"test.txt\" like that:

hello world

it is, just a \'hello world\' string. If I use a perl regex:

perl -pe          


        
相关标签:
3条回答
  • 2021-01-22 23:47

    The redirection takes place while your shell is parsing your command line. This happens before the actual command is executed, thus the file you redirect to is overwritten before you have the chance to read it.

    0 讨论(0)
  • 2021-01-22 23:58

    perl accepts the parameter -i for inplace. With this, you can process a file with a perl program and immediately have it written back.

    0 讨论(0)
  • 2021-01-23 00:02

    It opens the file for writing due to the redirect before the application gets a chance to read from it. Redirect to a temporary file instead, then rename it after.

    0 讨论(0)
提交回复
热议问题