如何在每n个字符的输入中插入可能包含换行符的模式?

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

我正在尝试使用sed每2000个字符将'\n || '插入文件中。我正在使用此sed命令,但是如果文件中包含多行,该命令将不起作用,因为计数会在每一行上重置。

sed "s/.\{2000\}/&'\n || '/g" file

我如何使此命令与可能包含换行的输入一起使用?我可以使用非sed解决方案。

这里是一个示例,每4个字符而不是2000个字符插入一个模式。我在输出中显示换行符而不是回车符,以便于阅读。

示例输入:

aaaaaa
bbbbbb

示例输出:

aaaa'\n || 'aa\nb'\n || 'bbbb'\n || 'b

谢谢。

bash perl sed bsd
1个回答
0
投票

gnu awk可能会做:

echo "abcdefghijkl" | awk -v FS= -v OFS= '{for (i=1;i<=NF;i++) if (i>1 && i%3==1)  $i="\n ||"$i}1'
abc
 ||def
 ||ghi
 ||jkl
© www.soinside.com 2019 - 2024. All rights reserved.