替换平面文件中的第二行

时间:2016-08-11 23:48:35

标签: linux shell unix sed

我是shell脚本的新蜜蜂。如果这个问题多余,请将我重定向到正确的帖子。

我的file.txt文件如下所示,想要更改文件中的第二行

Property1=0
Property2=0 50 14 1/1 * ? *
Property3=0

我想替换第二行将50 14改为当前时间,文件看起来像是

Property1=0
Property2=0 58 15 1/1 * ? *
Property3=0

下次看起来像是

Property1=0
Property2=0 03 16 1/1 * ? *
Property3=0

请帮我改变第二行。

2 个答案:

答案 0 :(得分:2)

使用awksed更容易完成。

awk -v min=$(date +%M) -v hour=$(date +%H) 'NR == 2 { $2 = min; $3 = hour } 1' file > file.new

两个date命令将awk个变量设置为当前时间。 NR == 2匹配文件中的第2行,然后用这些时间变量替换第2和第3个字段。最后1会导致打印当前行。

答案 1 :(得分:0)

您可以使用sed更改第二行

sed '2s/.*/Property2=0 58 15 1\/1 * ? */' test

您似乎正在尝试增加,但我在第三个示例中看不到该模式