gpt4 book ai didi

linux - 我需要从文件中搜索模式并仅在屏幕上显示该模式,而不是整行。我如何在Linux中做到这一点?

转载 作者:太空宇宙 更新时间:2023-11-04 05:58:07 26 4
gpt4 key购买 nike

我需要搜索类似 x=<followed by any values> 的模式来自文件并显示模式,即 x=<followed by any values> ,仅在屏幕中,而不是整行。我怎样才能在 Linux 中做到这一点?

最佳答案

我有 3 个答案,从简单(但有警告)到复杂(但万无一失):

1) 如果你的模式每行只出现一次,你可以这样做(假设你的 shell 是

PATTERN="x="
sed "s/.*\($PATTERN\).*/\1/g" your_file | grep "$PATTERN"

2) 如果你的模式每行可以出现多次,那就有点困难了。一种简单但狡猾的方法是使用不会出现在任何具有您的模式的行上的特殊字符,例如“@”:

PATTERN="x="
SPECIAL="@"
grep "$PATTERN" your_file | sed "s/$PATTERN/$SPECIAL/g" \
| sed "s/[^$SPECIAL]//g" | sed "s/$SPECIAL/$PATTERN/g"

(这不会分隔每行的输出模式,例如,如果源代码行有 3 次“x=”,您将看到 x=x=x=,这很容易通过在最后一个 sed 中添加空格来修复)

3)无论如何,始终有效的东西:

PATTERN="x="
awk "NF>1{for(i=1;i<NF;i++) printf FS; print \"\"}" \
FS="$PATTERN" your_file

关于linux - 我需要从文件中搜索模式并仅在屏幕上显示该模式,而不是整行。我如何在Linux中做到这一点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47223726/

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