Jawaban:
Ini sepertinya berhasil, tapi saya belum memikirkannya:
sed -e '/^[[:space:]]*#/d'
Anda bisa menggunakannya grep
untuk itu
grep -vh '^[[:space:]]*#' filename
Karena, seperti yang saya duga, Anda menghapus komentar dari beberapa file, Anda mungkin juga mempertimbangkan untuk menghapus baris kosong, yang memperluas hal di atas ke:
grep -vh '^[[:space:]]*\(#\|$\)' filename
awk
solusinya adalah membalikkan pencocokan pola Anda.
$> cat ./text
elephant
# Master socket provides access to userdb information. It's typically
zoo
#ok
penguin
# !
$> awk '!/^(\ )*#/ {print $0}' ./text
elephant
zoo
penguin
awk '/^ *#/{next}1' file
harus cukup baik.
perl -ne 'print if ! /^\s*#/' ./text
Menggunakan data sampel yang diposkan oleh ДМИТРИЙ МАЛИКОВ ...
$ grep -vPh '^\s*#' filename.txt | grep -Po '\w+'
elephant
zoo
penguin
Saya lebih suka menggunakan pcre dengan grep jadi saya menggunakan -P untuk grep (harus grep GNU). Grep kedua adalah gula murni untuk memberi Anda kata-kata tanpa spasi putih. Itu juga akan "menghapus" baris kosong.
awk '!/^ *#/' ./text
.