Câu trả lời:
Điều này có vẻ hiệu quả, nhưng tôi đã không suy nghĩ sâu sắc về nó:
sed -e '/^[[:space:]]*#/d'
Bạn có thể sử dụng grep
cho điều đó
grep -vh '^[[:space:]]*#' filename
Vì, như tôi đoán, bạn đang tước bình luận từ một số tệp, bạn cũng có thể xem xét xóa các dòng trống, mở rộng phần trên thành:
grep -vh '^[[:space:]]*\(#\|$\)' filename
awk
giải pháp là đảo ngược phù hợp với mô hình của bạn.
$> 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
nên đủ tốt
perl -ne 'print if ! /^\s*#/' ./text
Sử dụng dữ liệu mẫu được đăng bởi CÂU HỎI THƯỜNG GẶP ...
$ grep -vPh '^\s*#' filename.txt | grep -Po '\w+'
elephant
zoo
penguin
Tôi thích sử dụng pcre với grep vì vậy tôi sử dụng khóa -P cho grep (phải là GNU grep). Grep thứ hai là đường nguyên chất để cung cấp cho bạn các từ không có khoảng trắng. Nó cũng sẽ "loại bỏ" các dòng trống.
awk '!/^ *#/' ./text
.