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

How to remove all non-numeric characters from the value of nth column of a pipe delimited files in UNIX

我在 UNIX 中有一个文件,其中有很多记录都有竖线分隔符。我想从包含 phone 数字的第 20 列的值中删除非字母数字和非特殊字符,并将执行正确的 trim 10 位数字。

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

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