我正在尝试使用sed
修改如下所示的行
CustomLog /home/logs/httpd/access_log common
到
CustomLog "|/usr/sbin/rotatelogs /home/logs/httpd/access_log_%m_%d_%Y 86400" combined
我尝试使用sed
替换文字,但它无效。我正在尝试为大约800个文件执行此操作,因此需要一个命令才能执行此操作。
答案 0 :(得分:1)
这似乎有效:
sed 's/\([^ ]*\) \([^ ]*\) \([^ ]*\)/\1 "|\/usr\/sbin\/rotatelogs \2_`date +%m_%d_%Y` 86400" combined/'
示例:
> echo "CustomLog /home/logs/httpd/access_log common" | sed 's/\([^ ]*\) \([^ ]*\) \([^ ]*\)/\1 "|\/usr\/sbin\/rotatelogs \2_`date +%m_%d_%Y` 86400" combined/'
答案 1 :(得分:0)
sed -i.bak '/CustomLog/{
s# # "|/usr/sbin/rotatelogs #
s/ common$/_%m_%d_%Y 86400" combined/
}' *.conf