如何在file.txt中添加第三行:
line 1
line 2
line 4
sed可以用sed '3iline 3' file.txt
,但我想输出到同一个文件。
我尝试了sed '3iline 3' file.txt >> file.txt
,但没有成功。它确实添加了行,但它重复了file.txt,我得到了这个:
line 1
line 2
line 4
line 1
line 2
line 3
line 4
答案 0 :(得分:2)
执行此操作的唯一方法是写入第二个文件,然后替换原始文件。您只能追加到任意文件;你不能插入一个中间。
t=$(mktemp)
sed '3iline 3' file.txt > "$t" && mv "$t" file.txt
如果您的sed
版本支持它,您可以使用-i
选项自动处理临时文件。
sed -i '3iline 3' file.txt # GNU
sed -i "" '3iline 3 ' file.txt # BSD sed requires an argument for -i