更新 :

更新 :

我想在现有文件的顶部插入文本。我该怎么做?我试过了,echotee没有成功。

sources.list我试图在终端的文件顶部插入 repo 行。

笔记

我需要一个一行快速解决方案,因为我已经知道另一个答案的方法

答案1

其实很简单sed

  • sed -i -e '1iHere is my new top line\' filename

  • 1i告诉 sed 在文件的第 1 行插入后面的文本;不要忘记\最后的换行符,以便将现有的第 1 行移动到第 2 行。

答案2

一般来说,使用脚本进行编辑比较棘手,但你可以使用echo然后catmv

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. 1选择第一行

  2. i插入新行

  3. x保存并关闭

相关内容