对于每个命令,是否可以在每个终端输出行前加一个字符?

时间:2017-08-05 03:04:27

标签: linux bash ubuntu terminal urxvt

有可能吗?

例如,假设我要运行命令ll

我的输出看起来像这样:

josh@zeitgeist ~ ll
total 41148
drwxr-xr-x 42 josh josh     4096 Aug  4 22:52 ./
drwxr-xr-x  4 root root     4096 Jul  9 21:18 ../
-rw-rw-r--  1 josh josh  3523718 Jul 11 00:17 2017-07-11-001710_3840x2160_scrot.png

但我希望它看起来像这样:

josh@zeitgeist ~ ll
XXXtotal 41148
XXXdrwxr-xr-x 42 josh josh     4096 Aug  4 22:52 ./
XXXdrwxr-xr-x  4 root root     4096 Jul  9 21:18 ../
XXX-rw-rw-r--  1 josh josh  3523718 Jul 11 00:17 2017-07-11-XXX001710_3840x2160_scrot.png

我已经知道使用PS1='XXX'更改提示;有没有办法改变显示的输出的每一行,特别是在终端中(不改变输出并将其放入文件中)?

我想这样做是为了在我的终端左侧有一个统一的字符行。

4 个答案:

答案 0 :(得分:4)

您可以使用sed

轻松完成
ll | sed 's/./XXX&/'

答案 1 :(得分:1)

XXX添加到所有行,包括空行。

ll | sed 's/^/XXX/'

编辑: 更改PS1后,您可以使用

调用所有命令的解决方案
bash | sed 's/^/XXX/'

答案 2 :(得分:0)

我想你可以这样做:

while read; do echo "xxx $REPLY"; done < <(ls -l)

不确定这是什么目的。

答案 3 :(得分:0)

使用awk:

$ ll|awk '$0="XXX"$0'