在Unix中组合来自文本文件的行?

use*_*853 5 unix shell

我有一个文件输出以下形式的行:

$XYZ blah blah blah
$XYZ something
$XYZ random data
Run Code Online (Sandbox Code Playgroud)

"$ XYZ"前缀对于每一行都是相同的,它确实以美元符号开头,并且除了行的开头之外,它几乎不可能发生.

我可以获得此文件的唯一方法是通过屏幕捕获,这会导致行包装为80个字符.所以它看起来如下(如果你假装包装的数量小于80):

$XYZ blah bl
ah blah
$XYZ somethi
ng
$XYZ random 
data
Run Code Online (Sandbox Code Playgroud)

我想重新创建真实的线条.我可以写一个程序来做它,但我想可能有一些我不熟悉的Unix命令可能会让它变得容易.有任何想法吗?

提前致谢.

dog*_*ane 4

首先,将所有行合并成一长行,然后在任何看到应该是行开头的单词的地方添加换行符,如下所示:

tr -d '\n' < file | sed 's/XYZ/\nXYZ/g'
Run Code Online (Sandbox Code Playgroud)