Sed 无法匹配 Mac 上的换行符

问题描述 投票:0回答:1

我有一个包含一千行的文件,如下所示:

9 9 9
9 9 9
9
9 9 9
9 9 9
9

我想加入 3 组的生产线来生产:

9 9 9 9 9 9 9
9 9 9 9 9 9 9

我想我会用 sed 用“X”替换每第三个换行符,然后加入所有行(vim 中的 %j),然后用新行替换“X”。

我尝试使用 sed 将每第三个换行符替换为“X”,但它没有替换任何东西:

sed -e "s/\n/X/3" test.txt > test2.txt

我试过了 和 代替 ,无济于事。看起来 sed 只是不匹配换行符。我在 Mac 上。我能做些什么来匹配换行符?

谢谢。

linux macos sed newline
1个回答
0
投票

使用 GNU sed。将接下来的两行附加到 sed 的模式空间并用空格替换所有换行符:

sed 'N;N;s/\n/ /g;' file

输出:

9 9 9 9 9 9 9
9 9 9 9 9 9 9

来自

man sed

N
:将下一行输入追加到模式空间

© www.soinside.com 2019 - 2024. All rights reserved.