python从字符串中删除电话号码

标签 python regex bash awk sed

我有一个如下所示的文本文件:

rgf34 | 9 | 2015-07-20 | hello this is my number 1234567890 
rgf35 | 10 | 2015-07-20 | my number : 123 - 456 -8888 can you check...

列是用管道分隔的,每个新数据都在一个新行上。

我怎样才能通过第三列来删除所有 ph 值? (所有电话号码都是 10 位数字,我不知道它们是否有括号或破折号。)

我知道我可以先使用 awk 获取第三列中的数据,但我对如何执行正则表达式部分感到困惑:

这是 awk 部分:

awk -F "|" '{print $4}' myfile.txt

预期输出:

rgf34 | 9 | 2015-07-20 | hello this is my number 
rgf35 | 10 | 2015-07-20 | my number : can you check...

最佳答案

如果你把它放在 a.awk 中

BEGIN {
    FS = OFS = "|"
}
{
    sub(/[0-9].*[0-9]/, "", $4)
    print
}

然后运行

awk -f a.awk foo.txt

您将获得所需的输出。

如果输入是

rgf34 | 9 | 2015-07-20 | hello this is my number 1234567890 
rgf35 | 10 | 2015-07-20 | my number : 123 - 456 -8888 can you check...

输出将是

rgf34 | 9 | 2015-07-20 | hello this is my number
rgf35 | 10 | 2015-07-20 | my number :  can you check...

关于python从字符串中删除电话号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31551902/

相关文章:

bash 脚本在注释行后无法执行

python - debian 8.2 中的 "pip is configured with locations that require TLS/SSL"

python - Pyside uiLoader 捕获关闭事件信号

python - 检查搁架中是否存在 key 的最快方法

java - 正则表达式在某些条件下重新匹配字符

php - 如果冒号是第一个字符,则删除它

python - 如何存储 bash 命令的输出?

linux - 定义范围的 bash for 循环不起作用

python - Pandas JSON_Normalize 仅特定列

javascript - 在 javascript 中使用搜索并替换为正则表达式