Chci grep smb.conf
a zobrazit pouze řádky, které nejsou komentovány.
Přijatá odpověď:
grep "^[^#;]" smb.conf
První ^
odkazuje na začátek řádku, takže řádky s komentáři začínajícími za prvním znakem nebudou vyloučeny. [^#;]
znamená jakýkoli znak, který není #
nebo ;
.
Jinými slovy, hlásí řádky, které začínají jakýmkoli jiným znakem než #
a ;
. Není to totéž jako nahlásit řádky, které nezačínají #
a ;
(pro který byste použili grep -v '^[#;]'
) tím, že také vylučuje prázdné řádky, ale to je v tomto případě pravděpodobně vhodnější, protože pochybuji, že vás zajímají prázdné řádky.
Pokud jste chtěli ignorovat úvodní prázdné znaky, můžete to změnit na:
grep '^[[:blank:]]*[^[:blank:]#;]' smb.conf
nebo
grep -vxE '[[:blank:]]*([#;].*)?' smb.conf
Nebo
awk '$1 ~ /^[^;#]/' smb.conf
Zobrazit všechny soubory až do shody?
Linux – využití prostoru před 1. oddílem USB flash disku jako Luks Key?