标题说什么:假设从1sed
读取,它的输出可以是文本文件吗?
为了清楚起见
,我不是在谈论通过shell运算符(如那么,在什么情况下?STDIN
sed
>
>>
tee
sed
1:这只是为了排除使用支持它的实现对文本文件进行任何就地编辑。
标题说什么:假设从1sed
读取,它的输出可以是文本文件吗?
为了清楚起见
,我不是在谈论通过shell运算符(如那么,在什么情况下?STDIN
sed
>
>>
tee
sed
1:这只是为了排除使用支持它的实现对文本文件进行任何就地编辑。
是的,使用
w
命令或命令的w
标志s
,这两者都是由 POSIX 指定的。例如,与
馈入
sed
' 标准输入的任何内容都将被写入output.txt
,而不会输出至sed
' 标准输出(感谢该-n
选项)。这可以与其他命令结合使用,在将模式空间写出之前对其进行操作。一些警告和建议说明:
如果文件名以空格开头,请使用
./
前缀:如果文件名包含换行符,POSIXly,您可以使用反斜杠对其进行转义,尽管它不适用于所有
sed
实现(特别是不适用于 GNUsed
或 busyboxsed
):如果它包含反斜杠字符,在某些实现中(上面的 POSIX 支持文件名中的换行符),您需要使用反斜杠对其进行转义:
另请注意,即使输入为空或
w
命令从未像以下那样运行,也会创建(或截断)输出文件:或者
您可能想
awk
改用它来避免此类问题