Bash modificar valor no arquivo com entrada do usuário

0

Eu tenho um arquivo config.py contendo

config['port'] = 11111

Eu quero editar este arquivo. A parte complicada é que eu quero que bash receba entrada de mim e substitua 11111 pela entrada que eu forneço.

    
por Ayush Mishra 02.12.2017 / 15:59

2 respostas

2

Que tal isso:

#!/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]\+$/ ${PORT}/" config.py

Se este é o seu arquivo de entrada:

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

E é assim que você executa o comando:

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

Este é o seu arquivo atualizado:

# config.py
config['port'] = 456
    
por 02.12.2017 / 16:10
0
new_port=12345
awk -v port="$new_port" '$0=="config['\'port\''] = 11111" { sub("11111",port); };
    { print; }' /path/to/file
    
por 02.12.2017 / 16:34

Tags