gpt4 book ai didi

regex - strace 输出从双引号中提取文件名

转载 作者:行者123 更新时间:2023-12-01 10:06:48 28 4
gpt4 key购买 nike

open("/etc/ld.so.cache", O_RDONLY)      = 3
open("/lib/libselinux.so.1", O_RDONLY) = 3
open("/lib/librt.so.1", O_RDONLY) = 3
open("/lib/libacl.so.1", O_RDONLY) = 3
open("/lib/libc.so.6", O_RDONLY) = 3
open("/lib/libdl.so.2", O_RDONLY) = 3
open("/lib/libpthread.so.0", O_RDONLY) = 3
open("/lib/libattr.so.1", O_RDONLY) = 3
......................

以上几行是使用文件选项运行 strace 命令的典型输出。

我想从上面的输出中过滤掉双引号内的文件名(带/不带目录)...例如,我的要求是获得以下列表。

/etc/ld.so.cache
/lib/libselinux.so.1
..........

如何在 linux 中使用正则表达式处理实用程序(grep/sed/awk/等)获取上述过滤掉的文件名?

最佳答案

你可以使用这个grep:

grep -oP '"\K[^\n"]+(?=")' file
/etc/ld.so.cache
/lib/libselinux.so.1
/lib/librt.so.1
/lib/libacl.so.1
/lib/libc.so.6
/lib/libdl.so.2
/lib/libpthread.so.0
/lib/libattr.so.1

此正则表达式搜索双引号,然后使用 \K 重置匹配结果。它使用 [^\n"]+ 查找双引号之间的文本,然后是前瞻性 (?=") 以确保另一侧有匹配的双引号.

RegEx Demo

关于regex - strace 输出从双引号中提取文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27485765/

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