linux - 通过shell脚本更改文件内容

标签 linux bash shell

我有一个要求,我需要更改文件的内容,比如 xyz.cfg。该文件包含如下值:

group address=127.8.8.8
port=7845
Jboss username=xyz_ITR3

我想在需要时通过 shell 脚本更改此内容并保存文件。更改后的内容可能如下所示:

group address=127.8.7.7  
port=7822
Jboss username=xyz_ITR4

如何使用 shell 脚本通过获取用户输入或其他方式实现此目的?

最佳答案

怎么样:

#!/bin/bash

addr=$1
port=$2
user=$3

sed -i -e "s/\(address=\).*/\1$1/" \
-e "s/\(port=\).*/\1$2/" \
-e "s/\(username=\).*/\1$3/" xyz.cfg

其中 $1,$2$3 是传递给脚本的参数。将其保存为 script.sh 之类的文件,并使用 chmod +x script.sh 确保它可执行,然后您可以像这样运行它:

$ ./script.sh 127.8.7.7 7822 xyz_ITR4

$ cat xyz.cfg
group address=127.8.7.7
port=7822
Jboss username=xyz_ITR4

这为您提供了基本结构,但是您想考虑验证输入等。

关于linux - 通过shell脚本更改文件内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14643531/

相关文章:

linux - 检测 block 设备是本地磁盘还是移动U盘

linux - 在 shell 脚本中设置环境变量以在远程服务器上运行

python - `[System.Console]::OutputEncoding/InputEncoding`怎么用Python?

linux - 羊群锁定顺序?

python - 如何同时为 ROS 环境变量提供两个路径?

linux - 无效谓词 zcat

bash - 防止 bash 打印 “<PID> Aborted” 消息

linux - Rpm 安装错误,libstdc++-4.4.4-13.el6

linux - 将命令行参数传递给 .sh (shell) 文件

linux - 变量显示在终端中而不是 append 到 Bash 上的文件中