regex - grep regex 忽略中间部分
问题描述
我有一个像这样的收件人姓名的文件
致:约翰·史密斯 (johnny)
致:简·多伊(简)
致:Richard Larach(迪克)
我希望匹配只返回昵称:
约翰尼
简
迪克
我正在尝试对 To: 和 ( 进行正则表达式匹配,忽略中间部分,如果匹配则只输出昵称。
我努力了
grep -e "To:*\("
grep -e "To: * \("
grep -e /To: * \(/
我不确定问题是空间,还是我在其他地方搞砸了。我也不能只匹配 ( 因为还有其他的 (
解决方案
如果您只想要昵称部分,请尝试以下命令:
sed "s/.*(\(.*\))$/\1/g" input_filename
这仅在有一对 () 的情况下才有效。如果有多对,请使用 cut (假设行以昵称结尾
rev input_filename | cut -d \( -f1 | cut -d \) -f2 | rev
如果您有其他模式要求您在输入中添加更多样本
推荐阅读
- maven - Maven - 构建项目时出错
- python - Keras Input_shape 形状错误
- javascript - Rpraph 未在画布中显示
- flask - 带有 Flask Bootstrap 的 Flask Nav:“Navbar”对象没有属性“kwargs”
- math - Openlayers中的像素坐标
- php - 使用 CodeIgniter 和 NetBeans 进行 Xdebug
- python - 如何使用 Python 和 OpenCV 计算两个图像之间的差异百分比?
- dynamics-crm - 批量导入数据时是否可以自动合并?具体联系方式?
- c# - 如何在 .net 核心中读取无密钥查询字符串
- javascript - 从 Parse 服务器 ParseFile 对象获取数据