假设我的 .txt 文件中有以下电话号码
(682) 543-7890
我需要三个 sed 命令来更改这个数字。
- 需要将括号内的数字(可以是任意数字)替换为 800
示例文本:
(800) 543-7890
- 接下来我需要删除括号。
示例文本:
800 543-7890
- 对于最后一部分,我需要在区号和其余号码之间的空白处添加破折号。
示例文本:
800-543-7890
我sed -e 's/([^()]*)//g'
目前尝试过,它删除了括号和里面的所有内容。
答案1
单次sed
调用就足够了:
sed 's/(.*) */800-/'
答案2
你的命令sed -e 's/([^()]*)//g'
几乎可以工作,只需要做一些调整:
# You don't need greedy command 'g'
# you have to account for the space
# you have to make the substitution
$ sed -e 's/([^()]*) */800-/'
800-543-7890
当然,正如已接受的答案所证明的那样,有更简单的方法可以做到这一点。