gpt4 book ai didi

linux - 在Linux的特定位置添加一行并输出到同一个文件?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:06:05 25 4
gpt4 key购买 nike

如何在 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

最佳答案

唯一的方法是写入第二个文件,然后替换原来的文件。您只能附加到任意文件;你不能插入一个的中间。

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

关于linux - 在Linux的特定位置添加一行并输出到同一个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46431161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com