我想将文本foo
添加到某个目录中所有文件的开头。我尝试了以下命令:
sed '1i foo' *
但是只将文本添加到第一个文件中。如何在单个sed
命令中附加到所有文件? (我知道可以使用for
循环来完成,我特意要求一个sed
命令)
答案 0 :(得分:2)
使用选项--separate
(或简称:-s
)将文件视为单独的而不是单个连续的长流。
答案 1 :(得分:1)
如果要更改文件,只需添加-i
标志:
sed -i '1i foo' *
它会在每个文件的开头添加foo
。
注意:没有-i
,文件实际上没有被修改。 foo
仅在整个内容的开头添加到标准输出中,因此只出现一次。
答案 2 :(得分:1)
怎么样:
sed -i '1 s/^/foo/g' *