在 RHEL 5.8 上使用 /bin/bash,我想自动编辑文件。我需要脚本来搜索文件并替换文件中的一行。线路示例:
Other line
Current date 01121990
Other line
搜索此行并将日期字符串替换为预定日期。我无法回显到新文件并输入我的日期,因为该文件将从特定于服务器的文件复制。谢谢!
答案1
your_date='your desired date'
sed -i "s/^Current date.*/Current date ${your_date}/" /path/to/file
这是最简单的方法。这假设包含要替换的日期的所有行也是唯一以“当前日期”开头的行。
请注意,运行此命令的用户级别还必须具有编辑该文件的权限。
-i 表示内联编辑,这意味着您正在直接编辑文件。
^Current date.*
表示所有以以下内容开头的行:当前日期 并以任何方式结束。换句话说,将整行替换为 sed 的第二个 /.../ 部分中的内容。
Double " 在 sed 语句周围使用,以便变量将用作变量,而不是字符串。