对于具有相同结构的数万行,我想(例如)从这里开始:
abcd 12345 qwerty asdfg
Run Code Online (Sandbox Code Playgroud)
...到这里:
abcd 12345,qwerty asdfg
Run Code Online (Sandbox Code Playgroud)
...和
sed 's/[0-9]\ [A-Z]/,/g'
Run Code Online (Sandbox Code Playgroud)
我可以匹配 rigth 空间加上其周围的字符 (5 q),但在替换中我得到(显然):
abcd 1234,werty asdfg
Run Code Online (Sandbox Code Playgroud)
另外,我更喜欢在 linux shell 中执行此操作
我怎么能只匹配和替换每一行前面有一个数字后跟一个字母的空格?你会建议我使用另一种工具(甚至方法)来完成这项工作吗?
Joh*_*024 14
尝试:
$ echo 'abcd 12345 qwerty asdfg' | sed -E 's/([[:digit:]]) ([[:alpha:]])/\1,\2/g'
abcd 12345,qwerty asdfg
Run Code Online (Sandbox Code Playgroud)
笔记:
我们添加-E了扩展正则表达式语法。
[:digit:]并[:alpha:]用于代替Unicode0-9并A-Z确保 Unicode 安全。
Parens 用于创建组,我们可以在替换文本中引用。在我们的例子中,\1引用数字并\2引用字母。
| 归档时间: |
|
| 查看次数: |
14437 次 |
| 最近记录: |