regex - Bash:第一次出现的字符之间的正则表达式匹配

标签 regex linux bash awk sed

输入:

p45-322-16.jpg

期望的输出:

p45

我正在尝试使用 grep 或 awk 或 sed 或可以在 bash shell 上运行的东西制作 bash 脚本。

目前我坚持这个:

echo "p45-322-16.jpg" | sed 's/\(.*\)-.*/\1/'

输出:

p45-322

最佳答案

您可以使用cut 命令:echo "p45-322-16.jpg"|剪切-d"-"-f1

关于regex - Bash:第一次出现的字符之间的正则表达式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37121106/

相关文章:

linux - 如何在 Linux 上获得总体 CPU 使用率(例如 57%)

linux - 预期失败时登录 sudo - BASH

regex - 字母、数字和 - _ 的正则表达式

ptrace TRACEME调用的Linux效果

php - RegExp 用于查找/替换双引号内的换行符,而不影响双引号外的换行符

c - mmap 与 mmap64 有什么区别吗?

c - Syslog 目录不存在

linux - 删除文件名中的前 4 个字母和后 4 个字母

Ubuntu 9.04 中 Sed 命令的正则表达式语法错误

php - 如果 MySQL 函数用于自定义类,则 MySQL 确定是否在字符串周围加上单引号