{"id":33,"date":"2016-02-19T13:04:58","date_gmt":"2016-02-19T12:04:58","guid":{"rendered":"http:\/\/hslomka.de\/techno\/?p=33"},"modified":"2016-02-19T13:04:58","modified_gmt":"2016-02-19T12:04:58","slug":"machtige-grep-funktionen","status":"publish","type":"post","link":"https:\/\/techno.slomka.biz\/?p=33","title":{"rendered":"Sehr n\u00fctzliche grep Funktionen"},"content":{"rendered":"<p>grep wird von Linuxx\/Unix Administratoren zwar sehr oft genutzt, einige sehr m\u00e4chtige Optionen werden aber zu Unrecht wenig genutzt oder sind den Administratoren nicht bekannt.<\/p>\n<p><strong>1. Zeilen vor und nach der Fundstelle des Suchbegriffs ausgeben.<\/strong><br \/>\ngrep bietet die \u00e4usserst n\u00fctzliche Funktion, Zeilen vor und nach dem gefundenen Suchbegriff anzuzeigen.<\/p>\n<p>Um die Funktionen der grep Optionen darzustellen, verwende ich als Beispiel ein IBM Skript mit folgendem Inhalt, das von grep durchsucht wird:<\/p>\n<p><code class=\"kasten\">cat collector.sh<\/code><br \/>\n<code><\/code><\/p>\n<p class=\"einzug\">#!\/bin\/sh<br \/>\nbinDir=`dirname ${0}`<br \/>\n. ${binDir}\/setupCmdLine.sh<br \/>\n${WAS_HOME}\/bin\/collector.sh &#8220;$@&#8221;<\/p>\n<\/p>\n<p>Die Option -A <n> zeigt n Zeilen <strong>nach <\/strong> der Fundstelle an.<\/n><\/p>\n<p><code class=\"kasten\">grep -A 1 setup collector.sh<\/code><br \/>\n<code><\/code><\/p>\n<p class=\"einzug\">. ${binDir}\/setupCmdLine.sh<br \/>\n${WAS_HOME}\/bin\/collector.sh &#8220;$@&#8221;<\/p>\n<\/p>\n<p>Die Option -B <n> zeigt n Zeilen <strong>vor<\/strong> der Fundstelle an.<\/n><\/p>\n<p><code class=\"kasten\">grep -B 1 setup collector.sh<\/code><br \/>\n<code><\/code><\/p>\n<p class=\"einzug\">binDir=`dirname ${0}`<br \/>\n. ${binDir}\/setupCmdLine.sh<\/p>\n<\/p>\n<p>Die Option -C <n> zeigt n Zeilen <strong>vor <em>und<\/em> nach <\/strong>der Fundstelle an.<\/n><\/p>\n<p><code class=\"kasten\">grep -C 1 setup collector.sh<\/code><br \/>\n<code><\/code><\/p>\n<p class=\"einzug\">binDir=`dirname ${0}`<br \/>\n. ${binDir}\/setupCmdLine.sh<\/p>\n<\/p>\n<p><strong>2. Farbliches Hervorheben des Suchbegriffs in den Fundstellen<\/strong><br \/>\ngrep kann in einem Terminal den gefundenen Suchbegriff farblich hervorheben. Dazu setzt man die Umgebungsvariable GREP_OPTIONS wie folgt:<\/p>\n<p><code class=\"kasten\">export GREP_OPTIONS='--color=auto'<\/code><br \/>\n<code><\/code><\/p>\n<p class=\"einzug\">&#8211;color=always<\/p>\n<p> wird oft in Blogs erw\u00e4hnt, aber grep soll die Farben ja nur in interaktiven Terminals hervorheben. Daher empfehle ich die Option <code class=\"highlight\">--color=auto<\/code>. Am besten setzt man diese Umgebungsvariable in den Login Dateien (z.B. <code>.bashrc<\/code>).<\/p>\n<p><strong>3. Nur den Dateinamen mit der Fundstelle bei Suchen in mehreren Dateien ausgeben<\/strong><br \/>\ngrep erm\u00f6glicht Suchen in mehreren Dateien und auch rekursiv (Option -r) in Unterverzeichnissen. Wenn der Suchbegriff in vielen Dateien an mehreren Positionen enthalten ist, wird das Ergebnis<br \/>\nschnell un\u00fcbersichtlich. Die grep Option -l bietet sich in diesen F\u00e4llen an. Sie gibt nicht die Zeile mit der Fundstelle aus, sonder zeigt nur den Dateinamen an.<\/p>\n<p><code class=\"kasten\">grep -rl suchstring *<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>grep wird von Linuxx\/Unix Administratoren zwar sehr oft genutzt, einige sehr m\u00e4chtige Optionen werden aber zu Unrecht wenig genutzt oder sind den Administratoren nicht bekannt. 1. Zeilen vor und nach der Fundstelle des Suchbegriffs ausgeben. grep bietet die \u00e4usserst n\u00fctzliche Funktion, Zeilen vor und nach dem gefundenen Suchbegriff anzuzeigen. Um die Funktionen der grep Optionen darzustellen, verwende ich als Beispiel ein IBM Skript mit folgendem Inhalt, das von grep durchsucht wird: cat collector.sh #!\/bin\/sh binDir=`dirname ${0}` . ${binDir}\/setupCmdLine.sh ${WAS_HOME}\/bin\/collector.sh &#8220;$@&#8221; Die Option -A zeigt n Zeilen nach der Fundstelle an. grep -A 1 setup collector.sh . ${binDir}\/setupCmdLine.sh ${WAS_HOME}\/bin\/collector.sh &#8220;$@&#8221; Die Option -B zeigt n Zeilen vor der Fundstelle an. grep -B 1 setup collector.sh binDir=`dirname ${0}` . ${binDir}\/setupCmdLine.sh Die Option -C zeigt n Zeilen vor und nach der Fundstelle an. grep -C 1 setup collector.sh binDir=`dirname ${0}` . ${binDir}\/setupCmdLine.sh 2. Farbliches Hervorheben des Suchbegriffs in den Fundstellen grep kann in einem Terminal den gefundenen Suchbegriff farblich hervorheben. Dazu setzt man die Umgebungsvariable GREP_OPTIONS wie folgt: export GREP_OPTIONS=&#8217;&#8211;color=auto&#8217; &#8211;color=always wird oft in Blogs erw\u00e4hnt, aber grep soll die Farben ja nur in interaktiven Terminals hervorheben. Daher empfehle ich die Option &#8211;color=auto. Am besten setzt man diese Umgebungsvariable in den Login Dateien (z.B. .bashrc). 3. Nur den Dateinamen mit der Fundstelle bei Suchen in mehreren Dateien ausgeben grep erm\u00f6glicht Suchen in mehreren Dateien und auch rekursiv (Option -r) in Unterverzeichnissen. Wenn der Suchbegriff in vielen Dateien an mehreren Positionen enthalten ist, wird das Ergebnis schnell un\u00fcbersichtlich. Die grep Option -l bietet sich in diesen F\u00e4llen an. Sie gibt nicht die Zeile mit der Fundstelle aus, sonder zeigt nur den Dateinamen an. grep -rl suchstring *<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[37,18],"tags":[64,71,72,86,88],"class_list":["post-33","post","type-post","status-publish","format-standard","hentry","category-korn-shell","category-shell-scripting","tag-grep","tag-kornshell","tag-ksh","tag-script","tag-shell"],"_links":{"self":[{"href":"https:\/\/techno.slomka.biz\/index.php?rest_route=\/wp\/v2\/posts\/33","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/techno.slomka.biz\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/techno.slomka.biz\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/techno.slomka.biz\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/techno.slomka.biz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=33"}],"version-history":[{"count":0,"href":"https:\/\/techno.slomka.biz\/index.php?rest_route=\/wp\/v2\/posts\/33\/revisions"}],"wp:attachment":[{"href":"https:\/\/techno.slomka.biz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=33"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techno.slomka.biz\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=33"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techno.slomka.biz\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=33"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}