由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Linux版 - 问一个bash stream output parse的问题
相关主题
请问bash下 > 和 >&有啥区别emacs 里一堆 ^M 咋整?
怎样得到一个目录里所有上个月创建文件的大小总和?expect question
How to write script to dl online stream问一个C Shell的sed用法。
请教个简单命令问题请教sort
怎样在环境变量里加换行符?如何对linux文件夹进行比对? (转载)
请教一个简单的内存规范程序 (转载)can linux play Blu-ray disc now?
换行符 \\ 不工作 (转载)想学习video streaming,应该从哪里下手?
命令行下如何批量替换文件里的换行符 (转载)为啥那么多抱怨11.04升级的?
相关话题的讨论汇总
话题: prog话题: 输出话题: sed话题: 处理话题: stream
进入Linux版参与讨论
1 (共1页)
g*******0
发帖数: 127
1
如果一个程序运行很长时间,期间不停有输出到屏幕上,因为使用了很多 "r" (CR符,
用作返回到同一行输出的开始),因此虽然输出很多,但只有一行,我使用了将输出
Redirect to file,想看到on processing的状态,可由于输出只有一行几乎无限长,
基本上在vim上没法看。想使用pipe line将输出处理一下再存到文件里,使用以下方法:
$ prog | sed `s/r/n/g` > output.txt
将 prog的输出通过 sed 将 CR (r) 换成 LF(n),这样r就变成了换行符n,再存到
文件中,就不会是只有一行无限长的文件了。
可是sed总是需要等到 prog将所有的输出都输出完以后才开始处理,虽然output.txt里
面存的基本上符合要求,可是我本来的目的是为了在 prog 运行的过程中查看 output.
txt,现在sed要等到prog都运行完以后才开始处理,那就没有意义了。
看sed的说明是可以处理stream strings的,可是它总是先buffer一行,然后才处理。
想问一下,怎么样才能使sed处理一行的一部分输出,然后再接着处理下一部分,而不
是需要等到读入一整行?
m**k
发帖数: 290
2
$prog | tr "\r" "\n"
g*******0
发帖数: 127
3
Thank you very much. Will try this after the current job completed.

【在 m**k 的大作中提到】
: $prog | tr "\r" "\n"
g*******0
发帖数: 127
4
奇怪,为什么我打的backslash都不见了。mtbk回帖中的反斜杠也不见了。难道这里也
需要使用双反斜杠吗。试试 \r, \n, '\r' `\n` "\r"

【在 g*******0 的大作中提到】
: Thank you very much. Will try this after the current job completed.
g*******0
发帖数: 127
5
This works like a charm. Thank you.

【在 m**k 的大作中提到】
: $prog | tr "\r" "\n"
1 (共1页)
进入Linux版参与讨论
相关主题
为啥那么多抱怨11.04升级的?怎样在环境变量里加换行符?
grep cannot handle "" ?请教一个简单的内存规范程序 (转载)
perl cgi中调用C可执行程序为什么在html中不显示?换行符 \\ 不工作 (转载)
一个script programming的简单问题命令行下如何批量替换文件里的换行符 (转载)
请问bash下 > 和 >&有啥区别emacs 里一堆 ^M 咋整?
怎样得到一个目录里所有上个月创建文件的大小总和?expect question
How to write script to dl online stream问一个C Shell的sed用法。
请教个简单命令问题请教sort
相关话题的讨论汇总
话题: prog话题: 输出话题: sed话题: 处理话题: stream