#で始まる行を削除

#で始まる行を削除

#aの左右にスペースがある場合は、aで始まる行をどのように削除できますか#

  # Master socket provides access to userdb information. It's typically

答え1

これは効果があるようですが、それについて深く考えませんでした。

sed -e '/^[[:space:]]*#/d'

答え2

grepあなたはそれを使用することができます

grep -vh '^[[:space:]]*#' filename

推測したように、いくつかのファイルからコメントを削除するので、空の行を削除して上記の内容を次のように拡張することも検討できます。

grep -vh '^[[:space:]]*\(#\|$\)' filename

答え3

awk解決策は、自分に合ったパターンを反転させることです。

$> cat ./text
elephant
# Master socket provides access to userdb information. It's typically
zoo
 #ok
penguin
# !

$> awk '!/^(\ )*#/ {print $0}' ./text
elephant
zoo
penguin

答え4

ДМИТРИЙ МАЛИКОВが投稿したサンプルデータを使って...

$ grep -vPh '^\s*#' filename.txt | grep -Po '\w+'
elephant
zoo
penguin

私はgrepでpcreを使用することを好むので、grepと一緒に-Pスイッチを使用します(GNU grepでなければなりません)。 2番目のgrepは純粋な砂糖で、スペースなしで単語を提供します。また、空行を「削除」します。

関連情報