覚えると便利な grep オプション
検索結果から除外したいものがある場合
-v オプションを使うと便利
例えば
1 | grep 'sh$' /etc/services |
を実行すると
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | bvcontrol 1236 /udp # Daniel J. Walsh cybercash 551 /tcp # cybercash cybercash 551 /udp # cybercash slush 1966 /tcp # Slush slush 1966 /udp # Slush novell-zen 2544 /tcp # Management Daemon Refresh novell-zen 2544 /udp # Management Daemon Refresh trustestablish 2573 /tcp # Trust Establish trustestablish 2573 /udp # Trust Establish simple-push 3687 /tcp # simple-push simple-push 3687 /udp # simple-push synchromesh 4548 /tcp # Synchromesh synchromesh 4548 /udp # Synchromesh fmp 4745 /tcp # Funambol Mobile Push fmp 4745 /udp # Funambol Mobile Push nfoldman 7393 /tcp # nFoldMan Remote Publish nfoldman 7393 /udp # nFoldMan Remote Publish |
というように tcp と udp の両方がでてくる
でも udp の行はいらない、というのなら
1 | grep 'sh$' /etc/services | grep - v udp |
とすれば
udp の結果は除外される
1 2 3 4 5 6 7 8 | cybercash 551 /tcp # cybercash slush 1966 /tcp # Slush novell-zen 2544 /tcp # Management Daemon Refresh trustestablish 2573 /tcp # Trust Establish simple-push 3687 /tcp # simple-push synchromesh 4548 /tcp # Synchromesh fmp 4745 /tcp # Funambol Mobile Push nfoldman 7393 /tcp # nFoldMan Remote Publish |
これを使えば、結果からコメントアウトされたものを除いて
設定ファイルをみることができる
コメントアウトは
先頭に # がついている行なので
grep -v ^#
を使えば簡単に除外できる
例えば、apache の設定ファイルの
/etc/httpd/conf/httpd.conf
の中から
/var/www/
の行を調べたいけど、
#でコメントアウトされた行は除くというなら
1 | cat /etc/httpd/conf/httpd .conf | grep var /www | grep - v ^ # |
とすれば
1 2 3 4 5 6 7 8 | DocumentRoot "/var/www/html" <Directory "/var/www/html" > Alias /icons/ "/var/www/icons/" <Directory "/var/www/icons" > ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" <Directory "/var/www/cgi-bin" > Alias /error/ "/var/www/error/" <Directory "/var/www/error" > |
というように必要な部分だけみることができる