【发布时间】:2013-10-16 20:09:04
【问题描述】:
我有一个别名来查看我的 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 专家。
谁能告诉我为什么这不能用作别名?
【问题讨论】:
-
如果在命令行中定义别名怎么办?也许只需将其添加到您的
~/.bashrc然后采购它。 -
在命令行中定义别名具有相同的效果(我首先将它从我的 .profile 中删除并重新获取它):我的错误日志中的尾部运行,但换行符根本没有格式化.我不认为问题出在定义别名的位置,并且我为我尝试摆弄别名的数十次中的每一次都“提供了 ~/.profile”。只是为了您的评论,我将它从 .profile 中删除并放在 .bashrc 中,并且仍然具有相同的确切效果 - 尾部运行但没有格式化。同样,在命令行上运行相同的命令,没有别名,按预期工作。
-
你可以试试
alias elog="tail -f /var/log/httpd/my-sandbox-error_log | sed -e 's/\\n/\'$'\n/g'"吗? -
@damienfrancois 谢谢,但没有骰子 - 仍然是相同的未格式化输出。 (为了记录,我给别名起了一个稍微不同的名字,并在运行新别名之前做了“source ~/.profile”)
-
Pitty.. 在这里工作 (MacOS) 如果你用换行符(一个简单的字符或单词)以外的东西替换它,它工作吗?
标签: apache bash sed alias profile