正規表現がsedコマンドの入力と一致しない理由[重複]

正規表現がsedコマンドの入力と一致しない理由[重複]

「ps aux」出力から余分な空白を削除し、空白を1つに置き換えたいです。私がしたことは次のとおりです。

ps axu | sed 's/[ ]+/ /g'

しかし、出力が変わらないようです。それでもトークンの間にスペースが多すぎます。

username    4876 ... <the rest of columns ommitted>

この正規表現がユーザー名とpidの間のスペースと一致しないのはなぜですか?

ベストアンサー1

sedBRE(基本正規表現)が使用されますが、+BREの一部ではないためです。s/ */ /(パターン部分に2つのスペース)を使用するか、-EGNUまたはBSDの拡張正規表現に使用しますsedsed -E 's/ +/ /g'

おすすめ記事