text.txt
我需要使用该命令更改文件中第 3 次出现的“None” sed
。我找到了这个命令
sed 's/None/All/3' text.txt
但这适用于一行中第 3 次出现的“None”,而不是整个文档中出现的“None”。有没有办法使用 sed 在整个文档中查找“None”并仅更改第 3 次出现的“None”?
我可以使用行号,但如果我的文档发生变化,则命令将不起作用。
答案1
-z
鉴于 GNU sed,你可以通过添加(或--null-data
) 选项来伪造它:
-z, --null-data separate lines by NUL characters
假设您的文档实际上不包含空分隔数据,这将导致 sed 将整个文档视为一行,以便修饰符3
假定您想要的含义
sed -z 's/None/All/3' text.txt