首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试对字符串进行grep输出,然后返回$3 (第3列)+找到的字符串

尝试对字符串进行grep输出,然后返回$3 (第3列)+找到的字符串
EN

Stack Overflow用户
提问于 2022-08-23 22:55:50
回答 2查看 59关注 0票数 2

我在一个文件中有很多行文本--每一行都是这样的:

代码语言:javascript
复制
blah blah filename1 blah blah blah blah text { ANY TEXT ANY HERE } blah blah blah

对于任何具有“文本{任何}”的行,我都试图将第三列($3)附加到找到的文本“文本{任何}”前面。

所以我有最后一部分在工作,我只需要拿3块钱:

代码语言:javascript
复制
cat data.txt | grep -oP 'text {/*?}'

*为更准确的场景更新,这里是它的扫描代码的实际行(它是一个F5负载均衡器配置):

代码语言:javascript
复制
ltm virtual www.testapp.com_80 { creation-time 2021-09-11:00:01:39 destination 10.105.34.20:http ip-protocol tcp last-modified-time 2021-09-11:19:56:16 mask 255.255.255.255 profiles { http { } tcp { } } rules { HTTP_to_HTTPS_Redirect } source 0.0.0.0/0 source-address-translation { type automap } translate-address enabled translate-port enabled vs-index 14 }

ltm virtual www.testapp2.com_443 { creation-time 2022-02-17:05:06:52 destination 10.105.34.23:https ip-protocol tcp last-modified-time 2022-02-17:05:06:52 mask 255.255.255.255 profiles { http { } tcp { } } rules { HTTP_to_HTTPS_Redirect } source 0.0.0.0/0 translate-address enabled translate-port enabled vs-index 20 }

这只是代表HUUGE配置文件的两行代码。

我只需要那一行的$3 (第3列)(每一行中都有VIP网站名称),用列出的irules“规则{ text in here }”打印

这两条线..。我正在寻找如下输出:

代码语言:javascript
复制
www.testapp.com_80 { HTTP_to_HTTPS_Redirect }
www.testapp2.com_443 { HTTP_to_HTTPS_Redirect }

谢谢你的协助!

EN

回答 2

Stack Overflow用户

发布于 2022-08-23 23:08:37

代码语言:javascript
复制
$ awk 'match($0,/(^| )rules *{[^}]*}/){ x=$3; $0=substr($0,RSTART,RLENGTH); $1=x; print }' file
www.testapp.com_80 { HTTP_to_HTTPS_Redirect }
www.testapp2.com_443 { HTTP_to_HTTPS_Redirect }
票数 2
EN

Stack Overflow用户

发布于 2022-08-23 23:43:13

使用sed,您可以尝试下面的代码。用GNU sed编写并测试它的-E选项,以启用ERE regex,以及您所显示的示例。使用sed的能力,使用捕获组将匹配的值存储到临时缓冲区内存中,稍后在sed中执行替换时可以使用该缓存。

下面是用于在下面的在线演示代码中使用的正则表达式的sed

代码语言:javascript
复制
sed -E 's/^[^[:space:]]+[[:space:]]+[^[:space:]]+[[:space:]]+([^[:space:]]+) .*(\{[^}]*}).*/\1 \2/' Input_file
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73465797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档