管道标准输出并为每一行添加一些字符

时间:2018-05-16 14:54:15

标签: bash

我想通过“工具”来管道进程的stdout,以便为每一行添加一些字符。我正在打击。

示例:

PREPEND=' * '
foo.bin | toolXY "$PREPEND"

如果foo.bin将输出:

hello
world

toolXY之后的输出应为:

 * hello
 * world 

toolXY的命令是什么?

2 个答案:

答案 0 :(得分:2)

Awk也适用于此。

cat foo.bin | awk 'PREPEND=" * " {print PREPEND $0}'

答案 1 :(得分:1)

foo.bin | sed "s/^/$PREPEND/"

foo.bin | while IFS= read -r line; do echo "$PREPEND $line"; done

如果$PREPEND可以包含不可预测的特殊字符,则第二个更强大。 IFS=保留每行的前导空格,-r保护反斜杠不被解释为转义序列。