【发布时间】:2021-05-24 23:35:50
【问题描述】:
我知道使用sed -E 's/[^[:alnum:][:space:]]+/?/g $input' 会将我输入文件的所有非字母数字字符替换为问号。
我应该如何使用 AWK 做同样的事情?
【问题讨论】:
-
检查
gsub的语法。相同的正则表达式将起作用 -
喜欢:
awk '{gsub(/[^[:alnum:][:space:]]+/,"?")} 1' Input_file其中gsub表示awk中的全局替换。 -
@RavinderSingh13 嘿。我已经在我的代码中尝试了该行,它用一个问号替换了所有没有空格的非字母数字字符。像这样:Hello!@#$ as Hello?。无法打印为“Hello????”
-
awk和sed -E都使用 ERE。除了捕获组之外,在 POSIXsed中执行某些操作的正则表达式将在 POSIXawk中执行相同操作。您原来的sed正则表达式用单个?替换多个字符,因此在awk中使用相同的正则表达式也是如此。相反,如果您希望将每个单独的字符替换为?,则在两个命令中从正则表达式中删除+
标签: awk