如何使用grep和cut提取文本行中符合指定模式的UUID哈希值
解决方案
你可以直接给现有grep命令添加-o参数实现需求,该参数的作用是仅输出每行中匹配到正则表达式的子串,无需搭配cut工具。
调整后的命令如下:
grep -oE "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" 目标文件路径
如果是从管道输入内容,直接将该命令接在管道后即可:
# 示例:读取文件内容后匹配提取 cat 目标文件路径 | grep -oE "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"
如果你的哈希值可能包含大写字母,可额外添加-i参数忽略大小写。
其他可选实现方案
- awk版本:
awk 'match($0, /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/, res) {print res[0]}' 目标文件路径
- sed版本:
sed -n 's/.*\([0-9a-f]\{8\}-[0-9a-f]\{4\}-[0-9a-f]\{4\}-[0-9a-f]\{4\}-[0-9a-f]\{12\}\).*/\1/p' 目标文件路径
内容的提问来源于stack exchange,提问作者looock7897
相关产品推荐
相关产品推荐

