bash - 根据条件在任何电话号码前添加“-”号
问题描述
我需要-
在任何以结尾的电话号码之前添加一个标志}
并将其删除}
例如,考虑这个示例文件:
*My phone number is 9999999999}<br>
Ram is calling to 88888888}<br>
653426} Rohan is trying to call 777777777*
预期输出:
*My phone number is -9999999999<br>
Ram is calling to -88888888<br>
-653426 Rohan is trying to call 777777777*
解决方案
这可以解决问题:
sed -i 's/\s\([0-9]*\)\}/ -\1/g' vv.txt
描述:
vv.txt 是您提供的样本中的文件
\s\([0-9]*\)\}
: 将捕获包含在一个空间中的所有内容,并且是一个数字到 }
-\1/g
:在这里,我们将在上一步中在空格\s
和符号}之间捕获的所有内容替换为负号
示例文件的输出是:
*My phone number is -9999999999<br>
Ram is calling to -88888888<br>
Rohan is trying to call 777777777*
要处理评论中提到的附加条件,您可以做两件事:
1.
sed -i 's/\([0-9]*\)\}/ -\1/g' vv.txt
但这会在前面添加一个空格 - 如果该行以您所说的数字开头。
或者,如果您不想要空间。
2.
sed -i 's/\s\([0-9]*\)\}/ -\1/g;s/^\([0-9]*\)\}/-\1/g' vv.txt
推荐阅读
- javascript - 本地存储无法在待办事项应用 REACT 中存储复选框
- python - VSCode Jupyter 加载不正确的 python 版本
- amazon-web-services - 如何避免从两个 lambda 覆盖 dynamodb?
- jenkins - Jenkins Pipeline 中是否有任何显示重建信息的环境变量?
- mysql - MySQL事务不回滚会有什么影响?
- php - Laravel 419 页面过期
- reactjs - react-dropdown-tree-select:是否可以将搜索区域向左移动?
- python - 将“轮廓”包包含到 matlplotlib 中并使用它设置标题
- javascript - 我在 Ajax 中使用“select2:opening”事件,但 select2 选项未填写第一次单击
- angular - 如何在 aws ec2 中使用 pm2 启动/运行 Angular 应用程序