「ps aux」出力から余分な空白を削除し、空白を1つに置き換えたいです。私がしたことは次のとおりです。
ps axu | sed 's/[ ]+/ /g'
しかし、出力が変わらないようです。それでもトークンの間にスペースが多すぎます。
username 4876 ... <the rest of columns ommitted>
この正規表現がユーザー名とpidの間のスペースと一致しないのはなぜですか?
答え1
sed
BRE(基本正規表現)が使用されますが、+
BREの一部ではないためです。s/ */ /
(パターン部分に2つのスペース)を使用するか、-E
GNUまたはBSDの拡張正規表現に使用しますsed
。sed -E 's/ +/ /g'