我想在命令输出的每一新行中添加一个前缀。
我想这样做,因为我将并行运行多个命令,这些命令将记录在同一输出日志中。
我尝试使用 AWK 执行此操作,但没有成功
runcommand1 | "[prefix1]" + log > logfile &
runcommand2 | "[prefix2]" + log > logfile &
Run Code Online (Sandbox Code Playgroud)
结果日志将是
[prefix1] bla bla
[prefix2] blo blo blo
[prefix1] other bla
[prefix1] other bla
[prefix2] other blo blo
Run Code Online (Sandbox Code Playgroud)
我想在命令输出的每一新行中添加一个前缀。
Run Code Online (Sandbox Code Playgroud)runcommand1 | "[prefix1]" + log > logfile & runcommand2 | "[prefix2]" + log > logfile & ^ Second one will overwrite first opened logfile you have to append ">>" second one
下面提到的几个命令可能会对您有所帮助。
您可以使用sed
yourcommand1 | sed 's/^/[prefix1] /' > logfile &
Run Code Online (Sandbox Code Playgroud)
您可以使用awk
yourcommand1 | awk '{ print "[prefix1]", $0 }' > logfile &
yourcommand2 | awk '{ print "[prefix2]", $0 }' >> logfile &
Run Code Online (Sandbox Code Playgroud)
如果你想将前缀字符串传递给 awk 那么
yourcommand1 | awk -v prefix="[prefix1]" '{ print prefix, $0 }' > logfile &
yourcommand2 | awk -v prefix="[prefix2]" '{ print prefix, $0 }' >> logfile &
Run Code Online (Sandbox Code Playgroud)
或者
mystring1="[prefix1]"
mystring2="[prefix2]"
yourcommand1 | awk -v prefix="$my_string1" '{ print prefix, $0 }' > logfile &
yourcommand2 | awk -v prefix="$my_string2" '{ print prefix, $0 }' >> logfile &
Run Code Online (Sandbox Code Playgroud)
如果这不是您需要的全部,请更新您的问题以显示一些更真正具有代表性的示例输入(您在运行 runcommand1/runcommand2 后收到)和预期输出。
| 归档时间: |
|
| 查看次数: |
6580 次 |
| 最近记录: |