$ sed 's/#.*$//' /etc/sysctl.conf net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_filter = 1 ......
と、これだと空行が残ります。
空行を削るのであれば、
$ sed 's/#.*$//' /etc/sysctl.conf | grep -v '^$' net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 0 ......
となります。
追記:
awk なら一発でできるかな、と思って試してみました。
$ awk '{ str = sub(/#.*$/, "", $0); if (length($0) > 0) print $0;}' /etc/sysctl.conf net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 0 .....
...あまり、単純にならないですね。
▽2
●
hissssa![]() |
grepの-vオプションで一発だと思いますが・・・
# grep -v ^# (ファイル名)
前二者の複合的な感じですが。
grep -v '^[:space:]*#'
空行も省きたければ
egrep -v '^[:space:]*(#|$)'
こんな感じで出来た気がする。
egrepで\sは使えるんだっけ使えないんだっけ?