複数のスペースを含む Grep 単語

複数のスペースを含む Grep 単語

ファイルから次のテキストをgrepし、sedコマンドを使用してコメントを解除しようとしています。助けてください

#auth           required        pam_wheel.so use_uid

#sed grepを使用して同じ行を削除する必要があります。

答え1

同様のタスクを実行するためにpatchコマンドを使用しました。

ファイルのバックアップコピーを作成し、通常のエディタで編集し、それを使用してdiff -u file.bak file > file.patchパッチを作成します。

patch -p0 file.patchこれにより、次のパッチを適用できます(-p0フルパス名を使用している場合は変更する必要があります)。

これは正確なsedラインを生成するよりも簡単で、ファイルが一致しない場合はファイルが破損するのではなくパッチが失敗するため、より安全です。これは複数行の変更にも当てはまります。

答え2

GNU sedの使用:

sed -E 's/^#(auth[[:space:]]+required[[:space:]]+pam_wheel\.so use_uid[[:space:]]*)$/\1/' file

出力が正しい場合は、-iファイルを直接編集するオプションを追加できます。

関連情報