小编gol*_*mar的帖子

多个进程使用 > 重定向到同一个文件

这不是“如何追加而不是覆盖”的问题。我不是在寻找结合了两个命令的输出的文件。这只是我犯的一个错误,我想了解系统为什么会这样做

我使用的命令(在远程 ssh 命令行上)需要很长时间才能完成并将数据(每隔几秒一行一行)输出到 stdout,因此我将其重定向到一个文件:

command > file.out &

有时远程会话会断开连接,但命令会继续在后台运行。我不知道这一点,所以在第一个命令完成之前,我再次运行了相同的命令:

command > file.out &

当两个进程都完成后,我希望(在阅读本站点的一些答案后)有一个文件,其中两个命令的行都搞砸了,但输出文件只有两个执行之一的输出。

为什么不将文件中有交织在一起(如在评论中警告说,两路输出这里)?最终文件属于 2 个输出中的哪一个?

编辑:

的问题已删除一个(为什么是输出文件没有锁定写?),因为它的解释这里

bash io-redirection concurrency

3
推荐指数
1
解决办法
1530
查看次数

为什么粘贴命令会截断输入文件之一?

我有两个文件,每个文件仅包含一列数字数据,并且行数相同。使用 时paste,它确实将两个文件中的行合并为一行,但第一个文件的文本被截断,而第二个文件中的文本保持不变:

$ head -3 s1_.dat s2_.dat
==> s1_.dat <==
-0.023193359375
-0.020416259766
0.014587402344

==> s2_.dat <==
-0.018707275391
-0.019805908203
0.011108398438

$ paste s1_.dat s2_.dat | head -3
-0.02319-0.018707275391
-0.02041-0.019805908203
0.0145870.011108398438
Run Code Online (Sandbox Code Playgroud)

中是否有列宽限制paste

shell text-processing paste

2
推荐指数
1
解决办法
400
查看次数