标签: regex file unix pipe delimited
我在 UNIX 中有许多文件,其中有许多带有管道分隔符的记录。我想从包含电话号码的列号 20 的值中删除非字母数字和非特殊字符,并将右修剪 10 位数字。
答案 0 :(得分:0)
awk -F\| '{ OFS="|";gsub(/[[:alpha:]]|[[:punct:]]/,"",$4);$0=substr($4,(length($4)-10),length($4)) }1' file
将文件分隔符设置为 |然后使用 gsub 将任何字母字符或标点符号替换为空字符。打印行。