好吧,另一个问题。我正在编写一个脚本来获取端口,然后替换它以将其放入配置文件中。例如。
如果我执行此命令...(cat /var/log/lighttpd/access.log | tail -1) 并且最后一行是一个数字 12。然后我想要 (sed -i 's/ 8162/81 ??????/' /etc/lighttpd/lighttpd.conf) 将 cat (/var/log/lighttpd/access.log | tail -1) 输出的端口 8162 替换为 /8112 是 12。基本上它抓取输出 12 然后创建新的端口 8112...我该怎么做,创建一个变量还是什么? awk 有用吗?或者也许我应该做一些连续的事情。我不知道。有什么想法或想法吗???
答案1
试试这个方法:
- 捕获
12
变量:var=$(cat /var/log/lighttpd/access.log | tail -1)
,然后 将其放入
sed
命令中:sed -i.bak "s/8162/81$var/" /etc/lighttpd/lighttpd.conf
或者
cat
立即将命令行添加到 sed,如下所示:sed -i.bak "s/8162/81$(cat /var/log/lighttpd/access.log | tail -1)/" /etc/lighttpd/lighttpd.conf
警告:
始终创建备份,以防此语法出现问题:
sed -i.bak "s/8162/81$(cat /var/log/lighttpd/access.log | tail -1)/" /etc/lighttpd/lighttpd.conf
请注意
"
使用的双引号,如果没有双引号,命令将不会处理您的变量或$(cat /var/log/lighttpd/access.log | tail -1)