尝试用AWK删除标点符号

  • 本文关键字:删除 标点符号 AWK awk
  • 更新时间 :
  • 英文 :


我有一个脚本,我正试图清理字段中的~。

awk '{gsub(/[[:punct:]]/, "")} 1' RS='[[:space:]]'/test/data/USER.FIDS
~qqq~
~jeff~
~mark~

这就是我想要清理的方式,并将Tilde从字段中删除。

qqq
jeff
mark

使用tr更简单

$ echo "~qqq~ ~jeff~ ~mark~" | tr -d '~'
qqq jeff mark

Awk实际上是一个更困难的解决方案。实际上,您想要使操作变得琐碎的sed,例如

sed 's/~//g'

其中s/find/replace/find等于"~"replace不包含任何内容(空字符串(的正规替换形式。g使替换成为全局的(所有出现的(。

示例使用/输出

$ echo "~qqq~ ~jeff~ ~mark~" | sed 's/~//g'
qqq jeff mark

当然,awk解决方案同样短,例如

awk '{gsub(/~/,"")}1'

它使用gsub()(全局替代(做完全相同的事情。

示例使用/输出

$ echo "~qqq~ ~jeff~ ~mark~" | awk '{gsub(/~/,"")}1'
qqq jeff mark

最新更新