1

可能吗?

例如,假设我想运行命令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

4 回答 4

4

你可以很容易地做到这一点sed

ll | sed 's/./XXX&/'
于 2017-08-05T03:29:57.297 回答
1

前置XXX到所有行,包括空行。

ll | sed 's/^/XXX/'

编辑:更改 PS1 后,您可以使用以下命令调用所有命令的解决方案

bash | sed 's/^/XXX/'
于 2017-08-05T09:23:48.513 回答
0

我想你可以做这样的事情:

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

不太确定这样做的目的是什么。

于 2017-08-05T03:12:39.333 回答
0

使用 awk:

$ ll|awk '$0="XXX"$0'
于 2017-08-05T09:32:33.970 回答