Bash 使用用户输入修改文件中的值

Bash 使用用户输入修改文件中的值

我有一个config.py文件包含

config['port'] = 11111

我想编辑这个文件。棘手的部分是我想bash获取我的输入并将 11111 替换为我给出的输入。

答案1

这个怎么样:

#!/bin/bash
# script.sh

# Prompt the user for input
echo "Choose a port number: "

# Read the input to a variable
read PORT

# Update the configuration file
sed -i "s/^\(config\['port'\] =\)\s\+[0-9]\+$/\1 ${PORT}/" config.py

如果这是您的输入文件:

# config.py
config['port'] = 123

这就是执行命令的方式:

user@host:~$ bash script.sh
Choose a port number: 456

那么这是您更新的文件:

# config.py
config['port'] = 456

答案2

new_port=12345
awk -v port="$new_port" '$0=="config['\'port\''] = 11111" { sub("11111",port); };
    { print; }' /path/to/file

相关内容