大多数 sed 调用都会将其输出重定向到所需文件。这意味着,在实际调用 sed 之前,文件就已经创建了(由调用 shell 创建)...
这反过来意味着,如果 sed 没有任何内容可输出,则文件将为空......
有什么诀窍可以根本没有文件相反,在这种情况下?
我唯一能想到的就是在 sed 完成后检查文件,或者输出到临时文件并仅将其移动到位(如果不是空的)。
两者都很丑陋... 有更好的方法吗? 更喜欢通用解决方案,但 Linux 或 gsed 也可以。
答案1
sed 的w
命令可能会有帮助。
从man sed
:
w filename
:将当前模式空间写入文件名。