修改文件中的电话号码

修改文件中的电话号码

假设我的 .txt 文件中有以下电话号码

(682) 543-7890 

我需要三个 sed 命令来更改这个数字。

  1. 需要将括号内的数字(可以是任意数字)替换为 800
    示例文本:
(800) 543-7890
  1. 接下来我需要删除括号。
    示例文本:
800 543-7890
  1. 对于最后一部分,我需要在区号和其余号码之间的空白处添加破折号。
    示例文本:
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

当然,正如已接受的答案所证明的那样,有更简单的方法可以做到这一点。

相关内容