gpt4 book ai didi

linux - 我如何向需要文件名的 ed 提供标准输入?

转载 作者:IT王子 更新时间:2023-10-29 00:56:00 26 4
gpt4 key购买 nike

这里需要一些基本的 unix shell:

对于我在 中看不到“-”目标的命令,说 ed:

print '%-2p\nq' | ed -s FILE

我能否提供来自某些命令的标准输出的流,而不是文件名,作为要处理的数据:

SomeCMD | ed -s SOMETHING_MAGICAL <<< 'print '%-2p\nq'

有可能吗?

最佳答案

ed 从 stdin 读取其命令,因此如果您的文件也在 stdin 上,您将如何工作?

事实上,您可以通过标准输入提供文件输入,如果您将它的输出与一行连接起来

i

开头,开始写入数据,然后附加一个 结束输入,然后是任何命令。您甚至可以将结果输出到标准输出。请记住,如果文件中有一行只有一个 .,它就会中断。

所以如果一个文件 input.file 包含这个:

First line
Second line
Third line

commands.list 文件包含以下内容:

.
1d
1,$w /dev/stdout

然后这个命令行...

echo i | cat - input.file commands.list | ed -s

将输出这个:

Second line
Third line

我敢说 tadaaaaa! 吗?

注意:您可能可以防止文件中出现单个 . 行的情况,方法是通过管道将文件通过过滤器转义任何此类行,然后使用 ed 命令。我把它留给你的聪明才智。

另一个注意事项:您确实应该为此使用 sed,但我不能让它不能完成评论过去。

关于linux - 我如何向需要文件名的 ed 提供标准输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12930509/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com