提问者:小点点

用字符串替换文本文件中的第一行


我是shell脚本的新手,对如何使用sed或任何其他工具将文本文件中的第一行替换为字符串感到困惑。以下是文本文件内容:

/home/snehil/Desktop/j1/movie.MOV
"spome other text lines'

我想用替换第一行(电影文件路径)movie.MOV(可能是外壳脚本中的变量)

请指导我如何做到这一点。我在一些帖子中遇到了sed,我需要在这里使用sed吗?


共2个答案

匿名用户

sed是正确的工具,尝试做:

var="movie.MOV"
sed -i "1s/.*/$var/" file.txt

解释

  • 1表示第一行
  • 剩下的是替换s///:我们用$var变量
  • 替换所有(.*)
  • 这里必须使用双壳报价

学习如何在shell中正确引用,这很重要:

"双引号"包含空格/元字符和每个扩展的每个文字:"$var""$(命令"$var")""${数组[@]}""a

匿名用户

你可以用尾巴轻松做到这一点:

#I want to replace the first line
cp test.txt test.txt.backup
echo 'mynewfirstline'> test.txt
#add everything from old file starting from second line
cat test.txt.backup |tail -n+2>> test.txt