替换文件的第一行并添加带有变量的新行
Replace first line of a file and adding a new line with variables
我在一个 HP-UX/ksh UNIX 机器上,我有一些文件,我希望始终将第一行替换为包含变量内容的另一行。这是一个示例文件和变量:
date=04_16_2016
var1=RM1
(其他时候var1会不一样)
file1.text :
file=/home/user1/something_04_09_2016.txt
stuff
stuff
stuff
我想完全替换删除第一行并将其替换为如下伪代码:
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
另一个sed
备选方案
header="some string with $var and $formatted_date"
sed -i -e "1i${header}" -e 1d file
我在一个 HP-UX/ksh UNIX 机器上,我有一些文件,我希望始终将第一行替换为包含变量内容的另一行。这是一个示例文件和变量:
date=04_16_2016
var1=RM1
(其他时候var1会不一样)
file1.text :
file=/home/user1/something_04_09_2016.txt
stuff
stuff
stuff
我想完全替换删除第一行并将其替换为如下伪代码:
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
另一个sed
备选方案
header="some string with $var and $formatted_date"
sed -i -e "1i${header}" -e 1d file