gpt4 book ai didi

greping stdin 和管道到 sed 似乎不起作用

转载 作者:行者123 更新时间:2023-12-02 00:31:34 24 4
gpt4 key购买 nike

我正在尝试过滤和替换标准输入,以便仅捕获针对我的风格进行调整的特定字符串。例如,假设标准输入字符串是

"KB: the system ran into a critical error" 

然后我将 grep 这一行,将“KB:”更改为“###”,然后输出到 STDOUT,这样

"### the system ran into a critical error"

我在 Fedora 12 中尝试过(实际上在许多其他版本中也尝试过)

$ grep "KB:" - | sed -e 's/KB:/###/g'
KB: the system ran into a critical error <--- This is what I typed in manually.
<--- Nothing is printed

我创建了一个文本文件 text.txt,其中包含相同的示例字符串,然后让 grep 从该文件中读取,如下所示:

$ grep "KB:" text.txt | sed -e 's/KB:/###/g'
### the system ran into a critical error <--- Correctly displayed
$

grep/sed 的内部来看有什么区别以及为什么 STDIN 方法不起作用?我不想听到使用 xargs 等替代方案,而是想知道为什么我的尝试会失败。

最佳答案

这对我有用:

echo“KB:系统遇到严重错误”| grep "知识库:"| sed -e 's/KB:/###/g'

请注意 grep 命令中排除了 - 字符。

使用grep在这里是没有用的。您可以将代码缩小到以下大小:

echo“KB:系统遇到严重错误”| sed -e 's/KB:/###/g'
###系统遇到严重错误

关于greping stdin 和管道到 sed 似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10581170/

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