次の構文は「Ambari Server running」と一致する必要がありますが、単語間に複数のスペースがある場合はどのように一致しますか?単語間のスペースを無視する方法は?
echo "Ambari Server running" | grep -i "Ambari Server running"
echo "Ambari Server running" | grep -i "Ambari Server running"
echo " Ambari Server running" | grep -i "Ambari Server running"
予想される結果は次のとおりです。
Ambari Server running
Ambari Server running
Ambari Server running
ベストアンサー1
tr
-s
連続したスペースを単一のスペースに圧縮するオプションと組み合わせて使用すると、grep
結果は次のようになります。
$ echo 'Some spacious string' | tr -s ' ' | grep 'Some spacious string'
Some spacious string
ただし、これにより横方向のスペースは完全に除去されず、両端の単一のスペースにのみ圧縮されます。
sed
サイドスペースを取り除き、内部スペースを単一のスペースに圧縮するために使用されます。
echo ' Some spacious string' |
sed 's/^[[:blank:]]*//; s/[[:blank:]]*$//; s/[[:blank:]]\{1,\}/ /g'
その後に渡すことができますgrep
。