regex - 只替换1个前导零,如果超过1次则丢弃它
问题描述
我想用@替换正好1个前导零,如果找到2个或更多前导零然后丢弃它。
0123
00123
000123
123
输出:
@123
00123
000123
123
我努力了
sed 's/^0.\{1\}/@/' file
注意:请考虑每行文件中的上述 4 条记录。
解决方案
您应该在示例输入中的自己的行中包含一个 0,因为这是一个可能会错过的边缘情况:
$ cat file
0123
00123
000123
123
0
$ sed -E 's/^0([^0]|$)/@\1/' file
@123
00123
000123
123
@
以上将适用于任何可以-E
选择使用 ERE 的 sed,例如 GNU sed 和 BSD/OSX sed。
推荐阅读
- python - 如何对我的 numpy 数组 (3000,3) 和 (3,2,3000) 使用广播
- java - 如何使用 android webview 发送 POST 数据以登录网站?
- view - 如何:点击即可将视图置于前面;设置最大/最小捏手势比例;将屏幕限制设置为平移手势
- reactjs - 带有道具的初始化状态使我的状态未定义
- python - 如何使我的 python 代码中的 sql 代码可调整?
- javascript - 如何修复我的 gulpfile js,错误后 gulp 停止工作
- heroku - 无法进入 Heroku bash。错误说 EHOSTUNREACH
- html - 我可以用 CSS Grid 布局模拟 flex-grow 和 flex-shrink 吗?
- python - 字典值作为其他键值的结果
- libreoffice - 将多个字段粘贴到一个字段中