使用 bash 脚本编辑文件的最佳方法是什么?

Pau*_*aul 12 scripting bash rhel

在 RHEL 5.8 上使用 /bin/bash 并且我想自动编辑文件。我需要脚本来搜索文件并替换文件中的一行。线路示例:

Other line
Current date 01121990
Other line
Run Code Online (Sandbox Code Playgroud)

搜索此行并将日期字符串替换为预定日期。我无法回显到新文件并输入我的日期,因为此文件将从特定于服务器的文件中复制。谢谢!

Liz*_*rdx 19

your_date='your desired date'
sed -i "s/^Current date.*/Current date ${your_date}/" /path/to/file
Run Code Online (Sandbox Code Playgroud)

这是最简单的方法。这假设所有包含要替换的日期的行也是唯一以“当前日期”开头的行。

请注意,运行此命令的用户级别还必须具有编辑该文件的权限。

-i 表示内联编辑,这意味着您正在直接编辑文件。

^Current date.*
Run Code Online (Sandbox Code Playgroud)

表示以以下内容开头的所有行:当前日期 并以任何内容结尾。换句话说,用 sed 内容的第二个 /.../ 部分中的内容替换整行。

双 " 用于 sed 语句周围,以便变量将用作变量,而不是字符串。