我想对我的 bash shell 中的所有输出进行 sed 操作。基本上我想把 sed 命令放在 .bashrc 中,这样它就可以“监听”某些关键字来处理它们。
例如,我希望在 .bashrc 中添加这样的内容:
sed ''/critical/s//$(printf "CRITICAL")/g''
因此,只要弹出“关键”一词,就会将其更改为“关键”。这可能是当我 cat 文件、使用 vi 或远程登录到另一个系统时。我需要做什么才能使其正常工作?
我想对我的 bash shell 中的所有输出进行 sed 操作。基本上我想把 sed 命令放在 .bashrc 中,这样它就可以“监听”某些关键字来处理它们。
例如,我希望在 .bashrc 中添加这样的内容:
sed ''/critical/s//$(printf "CRITICAL")/g''
因此,只要弹出“关键”一词,就会将其更改为“关键”。这可能是当我 cat 文件、使用 vi 或远程登录到另一个系统时。我需要做什么才能使其正常工作?
从 shell 执行此操作根本无法正常工作,因为许多命令需要直接访问终端和/或如果它们没有直接连接到终端(由于缓冲),它们的行为会有所不同。此外,虽然您可以强制重定向到文件(exec
没有命令),但您不能重定向到管道。
这样做的正确方法可能是使用exec
类似screen
.
expect
可以在interact
“模式”期间执行此操作。书中的细节。