将 grep 输出保持在一行上?

btf*_*998 6 linux bash grep

我有一个非常简单的问题要问你们。在浏览了文档和此处的站点后,我想知道是否可以防止 grep 在同一行上输出每个匹配项。

在我的示例中,我需要采用\xeb\x1a\x5e\x31\xc0\x88\x46\x07...等格式的字符串。我grep -oP "x\K(\S\S)")用来获取每个十六进制数字。

输出是正确的,但是每个匹配项都在自己的行上。这是一个问题,因为我需要将此输出提供给另一个程序。再说一次,有没有办法在没有任何类型的填充的情况下连续放置每个匹配项?

pfn*_*sel 5

您可以将输出通过管道传输到tr,例如

grep -oP "x\K(\S\S)") | tr -d '\n'
Run Code Online (Sandbox Code Playgroud)

这需要一个额外的过程,即它会使您的程序变慢。如果这是一个问题,您可以使用sedawk