如何在unix中查找字符串之间包含多个空格的行?

lig*_*ong 6 unix grep

我有像这样的台词

1|Harry|says|hi
2|Ron|says|bye
3|Her   mi oh ne|is|silent
4|The|above|sentence|is|weird
Run Code Online (Sandbox Code Playgroud)

我需要一个grep命令来检测第三行.

这就是我在做的事情.

grep -E '" "" "+' $dname".txt" >> $dname"_error.txt"
Run Code Online (Sandbox Code Playgroud)

我所依据的逻辑是,第一个空格必须后面跟着一个或多个空格才能被检测为错误.

$ dname是一个保存文件名路径的变量.

我如何获得所需的输出?

(是的

      3|Her   mi oh ne|is|silent
Run Code Online (Sandbox Code Playgroud)

)

fan*_*nts 7

grep '[[:space:]]\{2,\}' ${dname}.txt >> ${dname}_error.txt
Run Code Online (Sandbox Code Playgroud)

如果你想捕获2个或更多的空格.


Ern*_*ill 5

这样做就可以了:

grep "  " ${dname}.txt >> ${dname}_error.txt
Run Code Online (Sandbox Code Playgroud)

带引号的字符串中的两个空格工作正常。的-E接通模式进入扩展正则表达式,这使得该不必要这里复杂。