我有一个脚本,我正试图清理字段中的~。
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