我有一个如下所示的文本文件:
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/