我试图找到这三行:
<!--
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
-->
Run Code Online (Sandbox Code Playgroud)
并将它们替换为:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
Run Code Online (Sandbox Code Playgroud)
当我尝试
sudo sed -i 's:<!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> -->:<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />:' /myfile.xml
Run Code Online (Sandbox Code Playgroud)
它没有找到它,我也尝试将 \n 放入其中,但它仍然不起作用:
sudo sed -i 's:<!--\n <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />\n -->:<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />:' /myfile.xml
Run Code Online (Sandbox Code Playgroud)
这些不会引发任何错误,只是不会取消注释该行。任何建议都会有所帮助谢谢!
我正在使用 Sed 查找和替换文件中的字符串。这是第一次使用它,所以我可能做错了,
我有一个名为“test.properties”的“root”拥有的文件,我想用“cat”替换“world”。
所以我运行这个命令:
sudo sed s/world/cat/ <test.properties >newtest.properties
Run Code Online (Sandbox Code Playgroud)
它工作得很好,但是当我想像这样写入相同的文件时:
sudo sed s/world/cat/ <test.properties >test.properties
Run Code Online (Sandbox Code Playgroud)
它说“-bash:test.properties:权限被拒绝”,但我使用的是“sudo”,为什么它被拒绝了?
由于某种原因,我的 cronjob 无法正常工作:
4 20 * * * /home/ubuntu/db_backup/myScript.sh 1 > /home/ubuntu/db_backup/cron_log.txt
Run Code Online (Sandbox Code Playgroud)
我的 bash 脚本如下所示:
#! /bin/bash
mysqldump -h anotherhost -P 3306 -u usen -pmypass --all-databases > $1.sql
java -jar myJar.jar param1 $1.sql
Run Code Online (Sandbox Code Playgroud)
所以 jar 文件接受 2 个参数,第一个我希望始终相同,第二个来自第一个 bash 参数。在 /var/spool/mail/ubuntu 我看到这个错误:
无法访问 jarfile myJar.jar
我在用户下设置了 crontab:ubuntu
jar 文件的所有者和组是 ubuntu,它的八进制权限为 700。
我究竟做错了什么?