小编oli*_*ver的帖子

Linux命令从stdin替换字符而不用'\n'

我运行像nc这样的命令,它输出的内容就像{"foo1":"bar1"}{"foo2":"bar2"}没有换行一样.我想更改输出如下:

{"foo1":"bar1"}
{"foo2":"bar2"}
Run Code Online (Sandbox Code Playgroud)

我试过nc -U /dev/mysocket | sed 's/}/}\n/g',但它不起作用.sed如果它没有'\n',似乎不处理输入.

如果您没有nc可以输出上述样本的服务器.它更像是hello.c的以下输出:

#include <stdio.h>
#include <unistd.h>

int main()
{
    while (1) {
            printf("{\"foo1\":\"bar1\"}");
            fflush(0);
            sleep(1);
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

事实证明: gcc -o hello hello.c; ./hello | sed 's/}/}\n/g'不会起作用.如果没有'\n',似乎sed甚至不处理输入流.关于如何解决这个问题的任何想法?谢谢.

linux bash awk sed

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

标签 统计

awk ×1

bash ×1

linux ×1

sed ×1