正在寻找类似的东西?有什么想法吗?
cmd | prepend "[ERRORS] "
[ERROR] line1 text
[ERROR] line2 text
[ERROR] line3 text
... etc
答案1
cmd | while read line; do echo "[ERROR] $line"; done
其优点是只使用 bash 内置命令,因此创建/销毁的进程更少,因此应该比 awk 或 sed 稍快一些。
@tzrik 指出它也可能是一个不错的 bash 函数。定义如下:
function prepend() { while read line; do echo "${1}${line}"; done; }
允许它像这样使用:
cmd | prepend "[ERROR] "
答案2
尝试这个:
cmd | awk '{print "[ERROR] " $0}'
干杯
答案3
我非常感谢@grawity,我将他的评论作为答案提交,因为在我看来这是最好的答案。
sed 's/^/[ERROR] /' cmd
答案4
cmd | sed 's/.*/[ERROR] &/'