如何使用sed命令从文本文件中提取下划线之间的数字子串
sed命令实现方案
首先给出可直接使用的命令:
sed -E 's/^\.\/key_simple_([0-9]+)_.*/\1/' file.txt
命令说明
-E启用扩展正则表达式语法,无需对捕获组括号做转义处理- 正则匹配逻辑:
- 先匹配所有行统一的开头前缀
./key_simple_ - 用捕获组
([0-9]+)匹配后续连续的数字串(即需要提取的目标内容) - 匹配数字串后第一个下划线及该行剩余的所有内容
- 最终将整行内容替换为捕获组中提取的数字串,即可得到预期输出
- 先匹配所有行统一的开头前缀
通用兼容写法
如果后续文件新增行不符合固定前缀格式,只要目标数字固定为19位,也可以使用通用匹配命令:
sed -E 's/[^0-9]*([0-9]{19})_.*/\1/' file.txt
内容的提问来源于stack exchange,提问作者Mike Garber
相关产品推荐
相关产品推荐

