为什么“awk ... file | tee file”会截断文件?

安娜赫里

为什么这个管道会截断文件:

awk '...' file | tee file

cating 首先不是吗?

cat file | awk '...' | tee file

该文件只是一个包含数百行的常规配置文件。我习惯tee避免使用sponge(因为我必须先安装moreutils)。

林·杜拉特

从长远来看,您会发现这种行为并不一致。

问题是,tee在某个时间点打开文件进行写入。从那一刻起,文件被截断。这与哪个程序读取文件无关。

碰巧这cat非常快,并且在tee打开文件之前显然已经完成了文件的读取但是如果例如系统负载较大,cat可能还没有完成,管道cat也可能被截断。

因此,不要在读取管道时写入同一个文件。相反,使用GNUawk-i inplace,或者不可用您的系统,使用

cp file file.tmp &&
awk '...' file.tmp | tee file

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

File :: Tee和打开“ tee”管道之间有什么区别吗?

来自分类Dev

为什么在fopen('file.txt','r +')之后是write()截断文件?

来自分类Dev

为什么 dosfsck 会截断文件?

来自分类Dev

为什么需要tee命令?

来自分类Dev

读写文件:tee命令

来自分类Dev

读写文件:tee命令

来自分类Dev

tee>(进程)在写入文件时正在截断其stdout

来自分类Dev

为什么`psql --file`会误解代字号?

来自分类Dev

为什么getConfiguration偶尔会抛出File cannot be null?

来自分类Dev

使用tee有什么意义?

来自分类Dev

使用tee有什么意义?

来自分类Dev

tee命令创建空文件

来自分类Dev

用tee编写日志文件

来自分类Dev

tee命令创建空文件

来自分类Dev

tee结果为空文件

来自分类Dev

Linux用awk和tee写入同一文件:非常奇怪的行为

来自分类Dev

使用tee并等待时脚本挂起,为什么?

来自分类Dev

为什么重定向到同一文件会截断该文件?

来自分类常见问题

为什么我的Out-File不将输出写入文件

来自分类Dev

为什么我的Out-File不将输出写入文件

来自分类Dev

为什么 System.IO.File.AppendAllText 锁定我的文件?

来自分类Dev

为什么使用java.nio.files.File :: list会导致此广度优先的文件遍历程序因“打开的文件太多”错误而崩溃?

来自分类Dev

为什么使用java.nio.files.File :: list会导致此广度优先的文件遍历程序因“打开的文件太多”错误而崩溃?

来自分类Dev

写入文件时,PrintWriter会截断字符串,为什么?

来自分类Dev

写入文件时,PrintWriter会截断字符串,为什么?

来自分类Dev

Tee不显示输出或写入文件

来自分类Dev

使用tee将用户输入写入文件

来自分类Dev

PHP-parse_ini_(string | file)-为什么false并且没有值被截断为空字符串?

来自分类Dev

为什么file_exists()返回false?

Related 相关文章

  1. 1

    File :: Tee和打开“ tee”管道之间有什么区别吗?

  2. 2

    为什么在fopen('file.txt','r +')之后是write()截断文件?

  3. 3

    为什么 dosfsck 会截断文件?

  4. 4

    为什么需要tee命令?

  5. 5

    读写文件:tee命令

  6. 6

    读写文件:tee命令

  7. 7

    tee>(进程)在写入文件时正在截断其stdout

  8. 8

    为什么`psql --file`会误解代字号?

  9. 9

    为什么getConfiguration偶尔会抛出File cannot be null?

  10. 10

    使用tee有什么意义?

  11. 11

    使用tee有什么意义?

  12. 12

    tee命令创建空文件

  13. 13

    用tee编写日志文件

  14. 14

    tee命令创建空文件

  15. 15

    tee结果为空文件

  16. 16

    Linux用awk和tee写入同一文件:非常奇怪的行为

  17. 17

    使用tee并等待时脚本挂起,为什么?

  18. 18

    为什么重定向到同一文件会截断该文件?

  19. 19

    为什么我的Out-File不将输出写入文件

  20. 20

    为什么我的Out-File不将输出写入文件

  21. 21

    为什么 System.IO.File.AppendAllText 锁定我的文件?

  22. 22

    为什么使用java.nio.files.File :: list会导致此广度优先的文件遍历程序因“打开的文件太多”错误而崩溃?

  23. 23

    为什么使用java.nio.files.File :: list会导致此广度优先的文件遍历程序因“打开的文件太多”错误而崩溃?

  24. 24

    写入文件时,PrintWriter会截断字符串,为什么?

  25. 25

    写入文件时,PrintWriter会截断字符串,为什么?

  26. 26

    Tee不显示输出或写入文件

  27. 27

    使用tee将用户输入写入文件

  28. 28

    PHP-parse_ini_(string | file)-为什么false并且没有值被截断为空字符串?

  29. 29

    为什么file_exists()返回false?

热门标签

归档