众所周知,sed
可以stdin
通过. 当我们需要根据模式列表(或行号)进行更改时,这会派上用场,因为我们可以处理这些行并将它们转换为编辑命令,然后将其传递给.有时列表很大,所以我的问题是-f
sed
一个文件中可以使用的行数/编辑命令的数量是否有限制?sed
脚本2 ?
1:但并非所有实现都支持...
2:其中脚本是通过组合所有-e script
和-f script_file
选项获得的
答案1
简单浏览一下 GNU sed 4.2.2 的源代码就会发现大量的 malloc 调用,并且没有内置的大小常量。所以,不,没有限制 - 除了你的 RAM。
答案2
sed
在 OpenBSD 6.1 上:RAM 是限制。
可能造成麻烦的具体事情(如果你坚持这样做的话)是:
int
标签数量过多(我认为按 的顺序)。- 用太多数据填充了保留空间(大小为
size_t
)。 - 输入行太长(输入数据或脚本,但处理的行达到
size_t
长度)。
脚本sed
本身被编译成链表结构。