{"id":97,"date":"2013-02-18T09:59:26","date_gmt":"2013-02-18T08:59:26","guid":{"rendered":"http:\/\/paulchrablass.de\/blog\/?p=97"},"modified":"2013-04-14T17:34:04","modified_gmt":"2013-04-14T15:34:04","slug":"mit-grep-einen-suchstring-in-dateien-eines-verzeichnisses-finden","status":"publish","type":"post","link":"https:\/\/paulchr.ablass.me\/blog\/2013\/02\/18\/mit-grep-einen-suchstring-in-dateien-eines-verzeichnisses-finden\/","title":{"rendered":"Mit grep einen Suchstring in Dateien eines Verzeichnisses finden"},"content":{"rendered":"<pre><code>paul@athene:\/var\/www\/paulchrablass$ grep -ril --include=\"*.php\" \"class=\\\"special\\\"\" .\/<\/code><\/pre>\n<p>Durchsucht das aktuelle Verzeichnis <code>\/var\/www\/paulchrablass<\/code> nach allen .php-Dateien, in denen der String <code>class=\"special\"><\/code> vorkommt und spuckt den entsprechenden Dateinamen samt dazugeh\u00f6rigen Pfad aus.<\/p>\n<h3>Parameter<\/h3>\n<p><code>-r<\/code> = rekursive Suche, d.h. geht auch in Unterordner<br \/>\n<code>-i<\/code> = ignoriert Gro\u00df- und Kleinschreibung<br \/>\n<code>-l<\/code> = gibt nur den Dateinamen aus<br \/>\n<code>--include<\/code> = nur Dateien die die Merkmale innerhalb des include-Strings aufweisen<\/p>\n<h3>Gut zu wissen<\/h3>\n<p>Die Anf\u00fchrungszeichen werden mit Backslashes escaped.<\/p>\n<h3>Links<\/h3>\n<p><a href=\"http:\/\/wiki.ubuntuusers.de\/grep\">grep im Ubuntuusers-Wiki<\/a><br \/>\n<a href=\"http:\/\/www.linuxmanpages.com\/man1\/grep.1.php\">grep manpage<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>paul@athene:\/var\/www\/paulchrablass$ grep -ril &#8211;include=&#8220;*.php&#8220; &#8222;class=\\&#8220;special\\&#8220;&#8220; .\/ Durchsucht das aktuelle Verzeichnis \/var\/www\/paulchrablass nach allen .php-Dateien, in denen der String class=&#8220;special&#8220;> vorkommt und spuckt den entsprechenden Dateinamen samt dazugeh\u00f6rigen Pfad aus. Parameter -r = rekursive Suche, d.h. geht auch in Unterordner -i = ignoriert Gro\u00df- und Kleinschreibung -l = gibt nur den Dateinamen aus &#8211;include = nur [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_newsletter_tier_id":0,"jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[80],"tags":[24],"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p2Vohc-1z","jetpack-related-posts":[{"id":103,"url":"https:\/\/paulchr.ablass.me\/blog\/2013\/02\/19\/standardeingaben-ausgaben-mit-xargs-in-befehle-umwandeln\/","url_meta":{"origin":97,"position":0},"title":"Standardeingaben\/-ausgaben mit xargs in Befehle umwandeln","author":"Paul-Christian Abla\u00df","date":"19. Februar 2013","format":false,"excerpt":"$ grep -ril --include=\"*.php\" \"class=\\\"special\\\"\" .\/ | xargs geany & Erweitert grep um den Befehl, die als Suchergebnis ausgegebenen Dateien in Geany zu \u00f6ffnen. Links xargs im Ubuntuusers-Wiki xargs manpage","rel":"","context":"In &quot;Bash&quot;","block_context":{"text":"Bash","link":"https:\/\/paulchr.ablass.me\/blog\/themen\/bash\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":429,"url":"https:\/\/paulchr.ablass.me\/blog\/2013\/09\/23\/putty-theme-einstellungen-aendern\/","url_meta":{"origin":97,"position":1},"title":"PuTTY-Theme-Einstellungen \u00e4ndern","author":"Paul-Christian Abla\u00df","date":"23. September 2013","format":false,"excerpt":"Auf meinem Windows-7-Laptop ist PuTTY das Tool meiner Wahl, um mich via ssh mit meinem Webspace zu verbinden. Weil mir die Default-Darstellung nicht unbedingt zusagte und ich ein gro\u00dfer Fan des Monokai-Themes bin, lag nichts n\u00e4her als dieses Farbschema auch in PuTTY zu aktivieren. Der erste Schritt besteht im Erstellen\u2026","rel":"","context":"In &quot;Tools&quot;","block_context":{"text":"Tools","link":"https:\/\/paulchr.ablass.me\/blog\/themen\/tools\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/paulchr.ablass.me\/blog\/wp-content\/uploads\/2013\/09\/putty-sessions.png?fit=464%2C450&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":473,"url":"https:\/\/paulchr.ablass.me\/blog\/2013\/10\/23\/zielverzeichnis-beim-entpacken-von-archiven-aendern\/","url_meta":{"origin":97,"position":2},"title":"Zielverzeichnis beim Entpacken von Archiven \u00e4ndern","author":"Paul-Christian Abla\u00df","date":"23. Oktober 2013","format":false,"excerpt":"Kleine Sachen, die das Leben leichter machen: Um beim Entpacken das Zielverzeichnis eines Archivs zu \u00e4ndern, muss der Parameter -d> mitgegeben werden: unzip archiv.zip -d [Verzeichnis] Beispiel paul@athene:\/var\/www\/paulchrablass$ unzip ghost-0.3.2.zip -d ghost Damit wird das Archiv ghost-0.3.2.zip im Verzeichnis \/var\/www\/paulchrablass\/ in den neuen Ordner ghost entpackt. Links unzip manpage","rel":"","context":"In &quot;Bash&quot;","block_context":{"text":"Bash","link":"https:\/\/paulchr.ablass.me\/blog\/themen\/bash\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":637,"url":"https:\/\/paulchr.ablass.me\/blog\/2014\/05\/29\/ordneruebergreifendes-suchen-und-ersetzen-in-der-bash\/","url_meta":{"origin":97,"position":3},"title":"Ordner\u00fcbergreifendes Suchen und Ersetzen in der Bash","author":"Paul-Christian Abla\u00df","date":"29. Mai 2014","format":false,"excerpt":"Wer kennt es nicht: In einer gr\u00f6\u00dferen Anzahl von Dateien in verschiedenen Unterordnern soll ein bestimmtes Wort\/ eine Wortgruppe ausgetauscht werden. Prinzipiell eine eher unsch\u00f6ne Situation, die leicht in Arbeit ausarten kann- und das kann ja nun wirklich niemand wollen. Doch halt, Rettung ist in Sicht: In der Bash geht\u2026","rel":"","context":"In &quot;Bash&quot;","block_context":{"text":"Bash","link":"https:\/\/paulchr.ablass.me\/blog\/themen\/bash\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":574,"url":"https:\/\/paulchr.ablass.me\/blog\/2014\/03\/18\/syntaxhighlighting-in-vim-aendern\/","url_meta":{"origin":97,"position":4},"title":"Syntaxhighlighting in vim \u00e4ndern","author":"Paul-Christian Abla\u00df","date":"18. M\u00e4rz 2014","format":false,"excerpt":"Normalerweise erkennt vim den Dateityp einer Datei sehr zuverl\u00e4ssig und wendet das richtige Syntaxhighlighting an. Dieses normalerweise schlie\u00dft allerdings nicht unbedingt das L\u00f6sen von merge-Konflikten mit ein, so dass f\u00fcr diese F\u00e4lle der Dateityp manuell gesetzt beziehungsweise das richtige Syntaxhighlighting aktiviert werden muss. Dazu gibt es den Befehl :set syntax=[Syntaxk\u00fcrzel].\u2026","rel":"","context":"In &quot;Bash&quot;","block_context":{"text":"Bash","link":"https:\/\/paulchr.ablass.me\/blog\/themen\/bash\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":139,"url":"https:\/\/paulchr.ablass.me\/blog\/2013\/02\/25\/font-face-svg-schriften-und-fragmentbezeichner\/","url_meta":{"origin":97,"position":5},"title":"@font-face, SVG-Schriften und Fragmentbezeichner","author":"Paul-Christian Abla\u00df","date":"25. Februar 2013","format":false,"excerpt":"Um SVG-Schriften mittels der @font-face-Syntax einzubetten, wird bekanntlich folgendes Css ben\u00f6tigt: @font-face { font-family: \"Open Sans Regular\"; src: url(\"..\/fonts\/open-sans-regular\/OpenSans-Regular-webfont.svg#OpenSansRegular\") format(\"svg\"); } Spannend ist der Fragmentbezeichner hinter dem Dateinamen, von mir fett hervorgehoben. Normalerweise sollte dieser n\u00e4mlich in der Schriftdatei noch einmal auftauchen, n\u00e4mlich als Attributwert f\u00fcr id innerhalb dieses XML-Snippets:\u2026","rel":"","context":"In &quot;Css&quot;","block_context":{"text":"Css","link":"https:\/\/paulchr.ablass.me\/blog\/themen\/css\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/paulchr.ablass.me\/blog\/wp-json\/wp\/v2\/posts\/97"}],"collection":[{"href":"https:\/\/paulchr.ablass.me\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/paulchr.ablass.me\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/paulchr.ablass.me\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/paulchr.ablass.me\/blog\/wp-json\/wp\/v2\/comments?post=97"}],"version-history":[{"count":13,"href":"https:\/\/paulchr.ablass.me\/blog\/wp-json\/wp\/v2\/posts\/97\/revisions"}],"predecessor-version":[{"id":242,"href":"https:\/\/paulchr.ablass.me\/blog\/wp-json\/wp\/v2\/posts\/97\/revisions\/242"}],"wp:attachment":[{"href":"https:\/\/paulchr.ablass.me\/blog\/wp-json\/wp\/v2\/media?parent=97"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/paulchr.ablass.me\/blog\/wp-json\/wp\/v2\/categories?post=97"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/paulchr.ablass.me\/blog\/wp-json\/wp\/v2\/tags?post=97"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}