bash - 使用 grep 获取一行中的第一个数字
问题描述
示例文件 text.txt:
13 25 你好
我正在尝试使用 grep 来获取文件中只有 1 行的第一个数字,并且该数字可以是任意长度,在此示例中,我的预期输出为 13。
我试过这个正则表达式 (\d+),它在像 regexr 这样的正则表达式编辑器中给了我正确的输出,但 grep 不产生任何输出。
grep -o '(\d+)' test.txt
解决方案
你可以使用类似的东西:
grep -oE '^\s*[0-9]+' text.file
或者
sed 's/[ \t]*\([0-9]\{1,\}\).*/\1/' text.file
例子:
echo "13 25 hello" > text.txt
grep -oE '^\s*[0-9]+' text.file
Output: 13
sed 's/[ \t]*\([0-9]\{1,\}\).*/\1/' text.file
Output: 13
--
echo "9912 25 hello" > text.txt
grep -oE '^\s*[0-9]+' text.file
Output: 9912
sed 's/[ \t]*\([0-9]\{1,\}\).*/\1/' text.file
Output: 9912
推荐阅读
- python - 更改熊猫箱线图的 GROUPED 标题(不是“通常”的情节标题)
- laravel - 图片未显示在我的页面中(403 错误)
- reactjs - Jest 不会读取我的任何文件以获取代码覆盖率
- ruby - miniest 5.14.1 gem 与哪个版本的 Ruby 兼容?
- node.js - 导入快递时出现意外的标识符
- python - 将函数的文档字符串传递给另一个文件python3
- pytorch - Pytorch 将张量的格式从 BxWxH 更改为 B, N, 3
- node.js - 无法将图像从快递服务到 Angular6
- linux - 通过 shell 脚本克隆 git repo 时权限被拒绝
- typescript - 通过 TypeScript 中的另一个泛型类型保留泛型类型