1

我想对我的 bash shell 中的所有输出进行 sed 操作。基本上我想把 sed 命令放在 .bashrc 中,这样它就可以“监听”某些关键字来处理它们。

例如,我希望在 .bashrc 中添加这样的内容:

sed ''/critical/s//$(printf "CRITICAL")/g''

因此,只要弹出“关键”一词,就会将其更改为“关键”。这可能是当我 cat 文件、使用 vi 或远程登录到另一个系统时。我需要做什么才能使其正常工作?

4

2 回答 2

1

从 shell 执行此操作根本无法正常工作,因为许多命令需要直接访问终端和/或如果它们没有直接连接到终端(由于缓冲),它们的行为会有所不同。此外,虽然您可以强制重定向到文件(exec没有命令),但您不能重定向到管道。

这样做的正确方法可能是使用exec类似screen.

于 2012-04-20T01:30:06.250 回答
0

expect可以在interact“模式”期间执行此操作。书中的细节。

于 2012-04-20T03:23:12.740 回答