gpt4 book ai didi

regex - awk正则表达式提取部分url

转载 作者:行者123 更新时间:2023-12-02 08:23:59 24 4
gpt4 key购买 nike

我是 awk 的新手。我有多个文件包含类似于

xyz msg=(1448783938.658:149777):   uid=505   comm="abc.py"   exe="/install/python/bin
abc msg=(1448783938.658:149777): uid=506 comm="abc.py" exe="/install/bio/toolx/bin
abc msg=(1448783938.658:149777): uid=505 comm="abc.py" exe="/install/bio/tooly/bin

我需要两个输出。A。一个文件只包含来自所有文件的 uid 和 exe 列(就在/install/之后)例如

505 python
506 bio
505 bio

我可以用

打印exe
awk -F '/' '{ print $3}'

但不确定如何用它打印 uid。

  1. 一个包含 uid 和 exe 列的文件仅包含/bio/后面的字符串例如

    506工具x

    505工具

感谢任何帮助。

最佳答案

您可以使用以下 awk命令:

awk -F'[[:space:]="/]+' '{print $5, $10}' file

我正在使用一组定界符。这使得访问感兴趣的值变得简单。但是,它仅在路径不包含 <space> 时有效, = , "/ .

顺便说一句,还有sed可以用于此,因为没有使用定界符,所以无论路径中的字符类型如何,这都可以工作:

sed -r 's~.*uid=([^[:space:]]+).*exe="/install/([^/]+).*~\1 \2~' file

关于regex - awk正则表达式提取部分url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34051171/

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