【问题标题】:Find and replace text using a bash script使用 bash 脚本查找和替换文本
【发布时间】:2017-03-10 07:27:21
【问题描述】:

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

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

【问题讨论】:

  • 与您的问题无关,但请注意sudo echo "AS_ADMIN_PASSWORD=" > /tmp/password.txt 可能没有按照您的想法执行。 sudo 是无操作的,因为 i/o 重定向 > /tmp/password.txt 在调用命令之前发生在本地 shell 中。

标签: bash shell suse


【解决方案1】:

sed 的完美工作:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-16
    • 2015-02-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-17
    • 2013-11-08
    相关资源
    最近更新 更多