apache - 在带有引号和转义字符的 Alias 中使用 sed

标签 apache bash sed alias profile

我有一个别名来查看我的 apache 错误日志,它使用 sed 将换行符格式化为换行符以便更好地显示。以下命令在通过命令行输入时工作得很好,但不能作为别名使用。每次运行它时,我都需要打开我的 .profile,复制别名的内容,然后将其粘贴到命令行中。

tail -f /var/log/httpd/my-sandbox-error_log | sed -e 's/\\n/\n/g'

别名:

alias elog="tail -f /var/log/httpd/my-sandbox-error_log | sed -e 's/\\n/\n/g'"

我尝试了多种方法,交换了引号字符,并大量尝试了转义字符。似乎我永远无法让我的别名使用 sed 搜索/替换(错误日志被拖尾,没有换行格式)。我确定缺少一些微不足道的东西,我很天真。我不是 unix/linux 专家。

谁能告诉我为什么这不能用作别名?

最佳答案

如果您执行了 set -xecho alias elog=..alias elog 或以其他方式让 bash 将结果写回你,你会明白为什么它不起作用。双引号中的 \\ 变为 \

经验法则是,如果你不得不问,你就已经超出了别名的用处。改用函数:

elog() {
    tail -f /var/log/httpd/my-sandbox-error_log | sed -e 's/\\n/\n/g'
}

这样你就不需要任何额外的转义了。

关于apache - 在带有引号和转义字符的 Alias 中使用 sed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19412839/

相关文章:

linux - 如何在 Telnet bash 脚本中设置超时?

sed - 提取括号之间的字符串

php - UTF-8贯穿始终

ajax - 如何配置 apache 以使用 Access-Control-Allow-Origin header 处理多个域?

apache - 带有Apache的Munin服务器-您无权访问此服务器上的/munin

PHP:$_FILES 中 'type' 索引的来源是什么?

linux - 在文本文件中取第 n 列

linux - Bash 文本解析高尔夫

linux - 使用 sed 将 crontab 文件中的文本替换为斜线

linux - 使用linux命令执行设置操作