shell脚本查找文件/etc/rsyslog.d/50-default.conf 中包含字段"/var/log/syslog"的行,并把此行内容变为*.*;auth,authpriv,local0.none,local1.none -/var/log/syslog
时间: 2024-09-25 15:20:58 浏览: 37
交叉编译rsyslog所需的所有源文件打包,里面自带了一个交叉编译工具,将其修改为自己的交叉编译工具即可
在shell脚本中,你可以使用`grep`命令查找文件中包含特定字符串的行,然后使用`sed`替换指定的内容。以下是一个示例脚本来完成这个任务:
```bash
#!/bin/bash
# 查找包含 "/var/log/syslog" 的行
MATCH_LINE=$(grep -l '/var/log/syslog' /etc/rsyslog.d/50-default.conf)
if [ $? -eq 0 ]; then
# 如果找到匹配行,使用 sed 替换内容
SED_CMD="sed -i 's|/var/log/syslog|*.*;auth,authpriv,local0.none,local1.none -/var/log/syslog|g' $MATCH_LINE"
# 执行sed替换
eval $SED_CMD
# 检查操作是否成功
if [ $? -eq 0 ]; then
echo "修改了文件 $MATCH_LINE 的内容."
else
echo "替换文件 $MATCH_LINE 内容失败."
fi
else
echo "未找到包含 '/var/log/syslog' 的行."
fi
```
请注意,这个脚本假设你的系统支持 `sed -i`,它可以在原文件上直接做修改。如果不支持,你需要先备份原始文件再进行编辑。
阅读全文