77

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

/home/snehil/Desktop/j1/movie.MOV
“spome 其他文本行”

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

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

4

2 回答 2

158

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

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

解释

  • 1意思是第一行
  • 剩下的就是替换:我们用变量s///替换所有内容 (.*)$var
于 2012-11-18T06:51:58.370 回答
2

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

#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
于 2021-11-24T15:34:20.050 回答