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