【发布时间】:2018-03-03 18:57:03
【问题描述】:
看似简单,但远非如此。尝试了很多东西。我所拥有的最好的:
echo "low quality not gonna apologize" | jq -r 'gsub("[\\s+]"; " "; "g")'
parse error: Invalid numeric literal at line 1, column 4
目标是用 1 个空格替换任何类型的多个空格。请注意,我已经从此流中删除了制表符和换行符。这是 bash 外壳。在我正在构建的更大应用程序的上下文中,我也没有收到此错误,其中代码只是简单而安静地没有将多个空格更改为单个空格,原因是 IDK。
【问题讨论】:
-
加号量词应该在括号表达式之外,使用
"\\s+" -
echo "低质量不会道歉" | jq -r 'gsub("[\\s]+"; " "; "g")' 解析错误:第 1 行第 4 列的数字文字无效
-
echo "低质量不会道歉" | jq -r 'gsub("\\s+"; " "; "g")' 解析错误:第 1 行第 4 列的数字文字无效
-
("[\\s+]"; " "; "g")是奇怪的分隔符语法。确定要使用这个奇怪的实用程序吗?