Unix 替换文件的第一行并使用变量添加新行

Unix 替换文件的第一行并使用变量添加新行,unix,sed,ksh,Unix,Sed,Ksh,我在一个HP-UX/ksh UNIX设备上,我有一些文件,在这些文件中,我总是想用另一行替换第一行,其中包含来自变量的内容。以下是一个示例文件和变量: date=04_16_2016 var1=RM1 (var1在其他时间会有所不同) file1.text: file=/home/user1/something_04_09_2016.txt stuff stuff stuff 我想完全擦除第一行,并将其替换为类似以下psuedo代码的内容: file=/home/user1/somethi

我在一个HP-UX/ksh UNIX设备上,我有一些文件,在这些文件中,我总是想用另一行替换第一行,其中包含来自变量的内容。以下是一个示例文件和变量:

date=04_16_2016

var1=RM1
(var1在其他时间会有所不同)

file1.text:

file=/home/user1/something_04_09_2016.txt
stuff
stuff
stuff
我想完全擦除第一行,并将其替换为类似以下psuedo代码的内容:

file=/home/user1/something_$var1_$date.txt
因此,完成后,文件将如下所示:

file=/home/user1/something_RM1_04_13_2016.txt
stuff
stuff
stuff

任何帮助都将不胜感激

比如说,您已经设置了
date
var1
,然后您就可以执行了

sed "1 s:.*:/home/user1/something_${var1}_${date}.txt}:" file1.txt > file1.mod

sed s
仅应用于行
1
sed
没有
-i
选项(在位编辑)时,您可以使用
ed
。 不要缩进下面的代码,大多数东西都需要在行首

newstring="/home/user1/something_${var1}_$(date +'%d_%m_%Y').txt"
ed -s input << EOF
1c
${newstring}
.
w
q
EOF
newstring=“/home/user1/something_${var1}}$(日期+'%d_%m_%Y').txt”

ed-s输入另一个
sed
备选方案

header="some string with $var and $formatted_date"
sed -i -e "1i${header}" -e 1d file