看起来很简单,但到目前为止还没有。尝试了很多东西。最好的我有:

echo "low quality      not gonna apologize" | jq -r 'gsub("[\\s+]"; " "; "g")'

parse error: Invalid numeric literal at line 1, column 4

目标是用1个空格替换任何种类的多个空白的任何出现。请注意,我已经从该流中删除了制表符和换行符。这是bash外壳。在我正在构建的大型应用程序的上下文中,我也不会遇到此错误,在该应用程序中,代码简单而安静地没有将IDK的多个空间更改为单个空间。

最佳答案

正确使用jq:

echo "low quality      not gonna apologize" | jq -Rr 'gsub("\\s+";" ";"g")'
  • -R-原始输入;每行文本作为字符串
  • 传递到过滤器

    输出:
    low quality not gonna apologize
    

    关于regex - jq先删除空格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49087991/

    10-13 08:33