我有一个文件输出以下格式的行:
$XYZ blah blah blah
$XYZ something
$XYZ random data
“$ XYZ”前缀对于每一行都是相同的,它确实以美元符号开头,并且除了行的开头之外,它不太可能发生在任何地方。
我能获得此文件的唯一方法是通过屏幕捕获,这会导致行以80个字符包裹。所以它看起来如下(如果你假装包装的数量小于80):
$XYZ blah bl
ah blah
$XYZ somethi
ng
$XYZ random
data
我想重新创建真实的线条。我可以写一个程序来做它,但我想可能有一些我不熟悉的Unix命令可能会让它变得容易。有什么想法吗?
提前致谢。
答案 0 :(得分:4)
首先,将所有行合并为一个长行,然后在看到应该是行开头的单词的位置添加换行符,如下所示:
tr -d '\n' < file | sed 's/XYZ/\nXYZ/g'
答案 1 :(得分:1)
在perl
:
perl -pe 's/\n//g;s/XYZ\s+/\n$&/g' filename.txt
答案 2 :(得分:1)
paste
命令就是为了这个目的:
paste -d "" - -
在
中echo '$XYZ blah bl
ah blah
$XYZ somethi
ng
$XYZ random
data' | paste -d "" - -
输出
$XYZ blah blah blah
$XYZ something
$XYZ random data