Text-Processing

使用 sed 替換電話號碼

  • September 28, 2020

我的 txt 文件包含電話號碼(233)- 332-9888,我想將其替換為###-###-####.

我正在做s|[0-9]{3}-[0-9]{3}-[0-9]{4}|###-###-####|g(在擴展模式下),我的問題是我不知道如何在第一個匹配括號[0-9]{3}

sed -E 's|\([0-9]{3}\)- [0-9]{4}-[0-9]{4}|###-###-####|g'

括號需要轉義,因為它們在擴展正則表達式中被特殊處理。

如果您想將電話號碼替換為標準的 10 位類似 NANP 的字元串,即###-###-####:

$ echo "(123) -456-7890" | sed 's/(\([0-9]\{3\}\)) -\([0-9]\{3\}-[0-9]\{4\}\)/###-###-####/g'
###-###-####

如果要重新格式化電話號碼以匹配 10 位 NANP 格式:

$ echo "(123) -456-7890" | sed 's/(\([0-9]\{3\}\)) -\([0-9]\{3\}-[0-9]\{4\}\)/\1-\2/g' 
123-456-7890

引用自:https://unix.stackexchange.com/questions/611601