gpt4 book ai didi

linux - sed:捕获组的输出值到文件中

转载 作者:太空宇宙 更新时间:2023-11-04 09:43:40 29 4
gpt4 key购买 nike


我正在使用 sed 来捕获文本、运行外部命令并将捕获组的输出值输出到屏幕和文件中。
这是我需要的命令示例:

echo testme | sed -r 's/([a-z]{4}).*/'"$(echo "\1" | tee out.txt)"'/g'

即我需要将捕获组(\1)的值(test)输出到一份文件。
但是在屏幕上我可以看到正确的文字:

test

在文件中我看到以下内容:

\1

似乎捕获组的符号在输出到文件而不是屏幕时不会扩展其值。

请告诉我我做错了什么以及如何将捕获组的值输出到文件中。
请,如果可能的话 - 没有 grep/awk 的解决方案。我需要使用 sed(或者 ssed)来做到这一点。
谢谢!

最佳答案

这可能对你有用(GNU sed):

sed -r '/([a-z]{4}).*/!b;s//\1/;w out.txt' file

或者:

sed -rn 's/([a-z]{4}).*/\1/p;T;s/.*/echo "&" | tee out.txt/e' file

关于linux - sed:捕获组的输出值到文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18797085/

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