使用 bash 脚本查找和替换文本

Find and replace text using a bash script

我有以下脚本,它使用我以正确格式将密码传输到的密码文件来更改密码。但是,下一个命令需要一个修改后格式的密码文件。目前我只是删除并重新创建文件,但最好只是编辑它,我只是不确定如何:

sudo touch /tmp/password.txt
sudo chmod 600 /tmp/password.txt
sudo echo "AS_ADMIN_PASSWORD=" > /tmp/password.txt
sudo echo "AS_ADMIN_NEWPASSWORD=Pa55w0rd2" >> /tmp/password.txt
sudo /opt/glassfish3/bin/asadmin --user admin --passwordfile /tmp/password.txt change-admin-password \
    --domain_name domain1
sudo rm /tmp/password.txt
sudo touch /tmp/password.txt
sudo chmod 600 /tmp/password.txt
sudo echo "AS_ADMIN_PASSWORD=Pa55w0rd2" > /tmp/password.txt
sudo /opt/glassfish3/bin/asadmin --user admin --passwordfile /tmp/password.txt enable-secure-admin

sed 的完美工作:

sed -i '/^AS_ADMIN_PASSWORD=/d' /tmp/password.txt

这会就地删除与给定正则表达式匹配的行。