如何从 UNIX 中管道分隔文件的第 n 列的值中删除所有非数字字符

时间:2020-12-23 19:19:23

标签: regex file unix pipe delimited

我在 UNIX 中有许多文件,其中有许多带有管道分隔符的记录。我想从包含电话号码的列号 20 的值中删除非字母数字和非特殊字符,并将右修剪 10 位数字。

1 个答案:

答案 0 :(得分:0)

awk -F\| '{ OFS="|";gsub(/[[:alpha:]]|[[:punct:]]/,"",$4);$0=substr($4,(length($4)-10),length($4)) }1' file

将文件分隔符设置为 |然后使用 gsub 将任何字母字符或标点符号替换为空字符。打印行。

相关问题