SED:如何将字符串插入最后一行的开头

Joh*_*ann 1 linux bash sed insert

如何将字符串插入最后一行的开头?

我想在包含多行的文本文件中添加时间戳

var1 = `date`

LINE1
LINE2
LINE3
...
(INSERT var1 here) LASTLINE
Run Code Online (Sandbox Code Playgroud)

sed 's/^/test line /g' textfile 将字符插入每行的开头但是如何才能专门修改最后一行?

谢谢

前进: sed '$s/^/sample text /' textfile工作,但仅在插入常规字符串时.如果我试试

var1 = "sample text"
Run Code Online (Sandbox Code Playgroud)

并使用替代,这是我遇到的问题

  1. 在sed中使用单引号不会扩展变量,因此sed'$ s/^/$ var1 /'textfile会将字符串$ var1插入到最后一行的开头.

  2. 为了启用变量替换,我尝试使用双引号.当我指定确切的行号时,它可以工作.就像是:

    sed"5s/^/$ var1 /"textfile

但是当我尝试时sed "$s/^/$var1" text file,它会返回一个错误:

sed:-e expression#1,char 5:命令后的额外字符

有谁可以帮助我吗?

Gur*_*uru 5

像这样:

sed '$s/^/test line /' textfile
Run Code Online (Sandbox Code Playgroud)

$表示最后一行.同样,您可以通过放置行号来插入任何特定行$