正则表达式搜索和替换 - 重新格式化名称

时间:2015-12-19 03:31:29

标签: regex search replace contacts samsung-mobile

我将三星A411的所有手机通讯录放在一个大文件中,然后导入三星Galaxy S3手机/联系人。

只有一个字段我无法做出标准&替换'用,凯特。这是我需要做的:

N:米老鼠

替换为..

N:鼠标;米奇;;;

2 个答案:

答案 0 :(得分:1)

使用sed:

sed -r 's/N:(\w*) (\w*)/N:\2;\1;;;/g' file.txt

使用s command的说明:

s/
   N:      # literal string "N:"          ┐
   (       # begin of capture group       │
      \w   # any word character           │
        *  # ...repeated 0 or more times  ├ regex
   )       # end of capture group         │
           # literal " " (space)          │
   (\w*)   # same capture group as above  ┘
/
   N:      # literal string "N:"          ┐
   \2      # backreference to 2nd group   │
   ;       # literal ";"                  ├ replacement
   \1      # backreference to 1st group   │
   ;;;     # literal ";;;"                ┘
/
   g       # apply to all matches         ] flags

为了便于阅读,我使用sed -r(扩展正则表达式)以避免转义命令中的每个括号。

答案 1 :(得分:0)

  

“N”记录现在没问题,并且没有“N”重复。然而,   “FN”系列已被替换。不应修改“FN”   所有

要仅替换以N:开头的行,请插入^匹配行的开头),i。即

sed -r 's/^N:…