我想在现有文件的顶部插入文本。我该怎么做?我试过了,echo
但tee
没有成功。
sources.list
我试图在终端的文件顶部插入 repo 行。
笔记
我需要一个一行快速解决方案,因为我已经知道另一个答案的方法
答案1
其实很简单sed
:
sed -i -e '1iHere is my new top line\' filename
1i
告诉 sed 在文件的第 1 行插入后面的文本;不要忘记\
最后的换行符,以便将现有的第 1 行移动到第 2 行。
答案2
一般来说,使用脚本进行编辑比较棘手,但你可以使用echo
然后cat
mv
echo "fred" > fred.txt
cat fred.txt t.txt >new.t.txt
# now the file new.t.txt has a new line "fred" at the top of it
cat new.t.txt
# can now do the rename/move
mv new.t.txt t.txt
然而如果你正在使用 sources.list,你需要添加一些验证和防弹措施来检测错误等,因为你真的不想失去它。但这是另一个问题 :-)
答案3
./prepend.sh "myString" ./myfile.txt
已知prepend
我的自定义外壳:
#!/bin/sh
#add Line at the top of File
# @author Abdennour TOUMI
if [ -e $2 ]; then
sed -i -e '1i$1\' $2
fi
也可以使用相对路径或绝对路径,它应该可以正常工作:
./prepend.sh "my New Line at Top" ../Documents/myfile.txt
更新 :
如果您想要一个永久的脚本,请打开nano /etc/bash.bashrc
然后在文件末尾添加此功能:
function prepend(){
# @author Abdennour TOUMI
if [ -e $2 ]; then
sed -i -e '1i$1\' $2
fi
}
重新打开你的终端并享受:
prepend "another line at top" /path/to/my/file.txt
答案4
你可以在 Ex 模式下使用 Vim:
ex -s -c '1i|hello world' -c -x sources.list
1
选择第一行i
插入新行x
保存并关闭