Parallel processing GNU并行:抑制有关增加块大小的警告
我使用在文件的每一行上并发执行一个命令。虽然GNU parallel不会对结果造成任何问题,但它会发出大量以下类型的警告,扰乱输出:Parallel processing GNU并行:抑制有关增加块大小的警告,parallel-processing,gnu,Parallel Processing,Gnu,我使用在文件的每一行上并发执行一个命令。虽然GNU parallel不会对结果造成任何问题,但它会发出大量以下类型的警告,扰乱输出: 并行:警告:块中未匹配完整记录。增加到--blocksize 1363150 我假设这只是意味着我选择使用的块大小在输入边界处不太匹配,因此并行正在增加块大小,所以它确实如此。正如我所说的,我不认为这会对输出结果造成任何问题,这只是一个警告,我需要反复看到,甚至一次。是否有任何方法可以特别抑制这些警告?我真的不想完全重定向stderr并错过任何重要消息。你的假
并行:警告:块中未匹配完整记录。增加到--blocksize 1363150
我假设这只是意味着我选择使用的块大小在输入边界处不太匹配,因此并行正在增加块大小,所以它确实如此。正如我所说的,我不认为这会对输出结果造成任何问题,这只是一个警告,我需要反复看到,甚至一次。是否有任何方法可以特别抑制这些警告?我真的不想完全重定向stderr并错过任何重要消息。你的假设是错误的。GNU Parallel告诉您的是,它已经读取了一个完整的块,而您的记录无法容纳该大小。所以增加尺寸。GNU Parallel告诉您,“--blocksize 1363150”就足够了,但您可能希望将其进一步增加,比如说,“--block 3M” 如果将“--blocksize”设置为至少是最大记录大小的2倍,则永远不会看到警告 从技术上讲,GNU并行读取一个完整的块(在本例中,我们假设为7字节),并将其附加到其缓冲区。它试图在其缓冲区中找到完整的记录(在本例中,让我们说一个完整的行)。如果不能,则会发出警告,以指数方式(缓慢)增加块大小,然后重试: 输入数据:
12345\n
123456\n
1234567\n
12345678\n
123456789\n
1234567890\n
GNU并行一次读取7个字节:
12345\n
1
缓冲区包含一整行,所以一切都很好
23456\n
1
234567
8\n
123456
789\n
1234
567890\n
缓冲区包含一整行,所以一切都很好
23456\n
1
234567
8\n
123456
789\n
1234
567890\n
缓冲区不包含完整的行,因此会出现警告,--blocksize增加到8:
\n
1234567
缓冲区现在包含一个完整的行,所以一切都很好
23456\n
1
234567
8\n
123456
789\n
1234
567890\n
缓冲区包含一整行,所以一切都很好
23456\n
1
234567
8\n
123456
789\n
1234
567890\n
缓冲区包含一整行,所以一切都很好
23456\n
1
234567
8\n
123456
789\n
1234
567890\n
缓冲区包含一整行,因此一切正常。感谢您澄清消息的含义。不管怎样,有没有一种方法可以在不手动返回并调整块大小的情况下抑制消息?没有。但是您可以将--blocksize放在~/.parallel/config中,这样您就不必每次都键入它。
23456\n
1
234567
8\n
123456
789\n
1234
567890\n