cat
アーカイブphp.ini
して削除する方法があるかどうか疑問に思います;
たとえば、ファイルに次の内容が含まれているとします。
; - Show all errors, except for notices
;
;error_reporting = E_ALL & ~E_NOTICE
;
; - Show only errors
;
;error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR
;
; - Show all errors except for notices
;
error_reporting = E_ALL & ~E_NOTICE
正しいコマンドを実行すると、cat | {remove comments command}
次のようになります。
error_reporting = E_ALL & ~E_NOTICE
ノート- これが最善の方法だと思いますが、cat
他のユーティリティ(たとえば、、など)を使用したawk
回答に実際に満足しています。sed
egrep
答え1
grepを介してファイルをパイプする必要はありません。 grepはファイル名をコマンドライン引数として使用します。
grep -v '^#' file1 file2 file3
#文字で始まるすべての行が印刷されます。コメント文字を必要に応じて変更できます。
コメント文字が複数ある場合(行の先頭にあると仮定)
egrep -v '^(;|#|//)' filelist
答え2
あなたはそれを使用することができます:
sed -e '/^;/d' php.ini
答え3
egrep
使用量を保存できますcat
。つまり、少数のプロセスを作成し(egrep
+ cat
)egrep
、より少ないバッファを使用します(cat
パイプからパイプへの接続対パイプegrep
なし)。
cat
ファイル自体を読み取ることができるコマンドにのみファイルを渡す場合は、通常使用を制限することをお勧めします。
ただし、次のコマンドはスペースまたはタブでインデントされたコメントを削除します。
egrep -v '^[[:blank:]]*;'file.ini
答え4
grep -Ev ^'(#|$)' file.txt
file.txtからすべてのコメントと空白行を削除します。
Yokaiのコメントに基づいて回答が更新されました。 「egrepまたはfgrepを直接呼び出すことは廃止されましたが、それに依存する履歴アプリケーションを変更せずに実行できるようになります。」https://www.gnu.org/software/grep/manual/grep.html