regex - 使用正则表达式从字符串文件中提取路径(Linux)
问题描述
我有一个缓存文件,其中包含 Linux 文件的文本和路径。我想使用 Linux 正则表达式提取这些文件,但我不知道该怎么做。以下是缓存文件的示例:
/usr/bin/mk_cmds (not prelinkable)
/usr/bin/gcov:
/lib/libc-2.5.so [0xfff88e55]
/lib/ld-2.5.so [0x7e786fcc]
/usr/lib/rpm/rpmdeps:
/usr/lib/librpmbuild-4.4.so [0xdb141354]
/usr/lib/librpm-4.4.so [0x4d8c8840]
现在这是我要提取的内容:
/usr/bin/mk_cmds
/usr/bin/gcov
/lib/libc-2.5.so
/lib/ld-2.5.so
/usr/lib/rpm/rpmdeps
/usr/lib/librpmbuild-4.4.so
/usr/lib/librpm-4.4.so
我尝试了一些东西,但都没有工作(使用 grep):
^(.*/)?(?:$|(.+?)(?:(\.[^.]*$)|$))
'(\/.+?) '
你知道我该怎么做吗?我尝试了几件事,但没有任何效果。非常感谢
解决方案
和:
sed -n 's/^[[:space:]]*\(.\+\)[: ]/\1/p' cachefile.txt
sed -n
: 无打印模式下的 Sed 编辑器
s/
: 搜索正则表达式:^[[:space:]]*
: 以空格或无空格开头的搜索行\(.\+\)
:捕获 1 个或多个字符。[: ]
: 后跟冒号:
或空格/\1/p
:打印正则表达式捕获的组 1。
在 regex101.com 中测试和使用这个正则表达式:
推荐阅读
- assembly - Intel 程序集中的操作码和操作数组合无效
- python - 查找合并的两列中唯一元素的总数
- neural-network - 训练 MIL 模型时,“张量”对象的错误没有属性“项目”
- python - 在 Power Automate 中运行 python 脚本
- c++ - 在控制台上绘制正弦波(原生 C)
- angular - Angular 单元测试 ActivatedRoute 参数订阅
- c# - C#/GDI 缩放图形降低了 FillRegion 方法的性能
- excel - 从网站上抓取产品href有困难
- blazor - 手动更新 Blazor WebAssembly 应用程序
- c# - blazor 中的动态延迟加载