ファイルから次のテキストを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
ファイルを直接編集するオプションを追加できます。