0

&& (AND) 演算子の両側に 1 つのスペースを追加する sed コマンドを作成しようとしています。これは私がこれまでに持っているものです:

sed -E 's+(\&\&)|(\s*\&\&\s*)+ & +g test.c

&& の周りにスペースがないという最初の条件が機能するため、

if(numberIn==0&&char=='g')

になる

if(numberIn==0 && char=='g')

しかし、1 つ以上のスペースの 2 番目の条件は機能しません。したがって、この

if(numberIn==0  &&   char=='g')

変わりません。

のパターンは\s*OPERATOR\s*他の二項演算子で機能したため、and 演算子で機能しない理由がわかりません。and 演算子で sed を使用することについて何か不足していますか? 最初の条件で、「 && 」に置き換えると実際には「 && && 」になることに気付きました。そのため、代替パターンは「 & 」です。(これは、OR または EQUALS 演算子には当てはまりません)。

ヒントをいただければ幸いです。

4

1 に答える 1