【问题标题】:Replace first line of a file and adding a new line with variables替换文件的第一行并用变量添加新行
【发布时间】:2023-04-05 11:48:01
【问题描述】:

我在一个 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

任何帮助将不胜感激!

【问题讨论】:

    标签: unix sed ksh


    【解决方案1】:

    说,你设置了datevar1,那么你就可以了

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

    sed s 仅应用于行 1

    【讨论】:

      【解决方案2】:

      另一个sed 替代

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

      【讨论】:

        【解决方案3】:

        当您的sed 没有-i 选项(就地编辑)时,您可以使用ed。 下面的代码不要缩进,大部分内容都需要在行首。

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

        【讨论】:

          猜你喜欢
          • 2014-04-13
          • 2017-02-03
          • 1970-01-01
          • 2019-03-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-08-05
          • 2014-10-19
          相关资源
          最近更新 更多