{"id":753,"date":"2013-10-09T13:44:57","date_gmt":"2013-10-09T12:44:57","guid":{"rendered":"http:\/\/www.symablog.de\/blog\/?p=753"},"modified":"2015-05-19T14:44:57","modified_gmt":"2015-05-19T13:44:57","slug":"unix-suchen-von-textstrings-in-dateien-unterschiedlicher-verzeichnisse","status":"publish","type":"post","link":"https:\/\/www.symablog.de\/blog\/unix-suchen-von-textstrings-in-dateien-unterschiedlicher-verzeichnisse\/","title":{"rendered":"Unix: Suchen von Text\/Strings in Dateien unterschiedlicher Verzeichnisse"},"content":{"rendered":"<p>Zur Suche von Textteilen\/Strings in bestimmten Dateien, die in verschiedenen Verzeichnissen liegen, kann folgendes Kommando verwendet werden:<\/p>\n<p>&nbsp;<\/p>\n<pre><strong>find . -name *.txt -exec grep Bauteil {} \\; -print<\/strong>\r\n\r\n<span style=\"color: #0000ff;\">Bauteilliste:<\/span>\r\n<span style=\"color: #0000ff;\">ingesamt 25 Bauteile<\/span>\r\n<span style=\"color: #0000ff;\">.\/relativer_verzeichnispfad_1\/datei_1.txt<\/span>\r\n<span style=\"color: #0000ff;\">hohe Bauteile, gr\u00f6\u00dfer 2m kommen<\/span>\r\n<span style=\"color: #0000ff;\">kleine Bauteile werden getragen<\/span>\r\n<span style=\"color: #0000ff;\">Bauteillisten gibt es unter ...<\/span>\r\n<span style=\"color: #0000ff;\">.\/relativer_verzeichnispfad_2\/datei_2.txt<\/span>\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Das Suchkommando find startet vom aktuellen Verzeichnis &#8222;.&#8220; die Suche im aktuellen und in allen Unterverzeichnissen nach Dateien mit der Endung *.txt.<br \/>\nDie gefundenen Dateien werden mit dem nach -exec angegebenem grep Kommando nach dem String &#8222;Bauteil&#8220; durchsucht und die gefundenen Zeilen mit -print ausgegeben.<br \/>\nEine Besonderheit ist, das erst die gefundenen Zeilen und danach die den String enthaltene Datei angezeigt wird. Dabei steht der Dateiname mit dem relativen Pfad von der aktuellen Position im Dateisystem.<\/p>\n<p>Eine Alternative zu dem <strong>-exec<\/strong> Schalter im <strong>find<\/strong> ist die \u00dcbergabe der Dateinamen an das Kommando <strong>xargs<\/strong>  via Pipe:<\/p>\n<pre><strong>find . -name *.txt | xargs grep Bauteil <\/strong>\r\n\r\n<span style=\"color: #0000ff;\">.\/relativer_verzeichnispfad_1\/datei_1.txt:Bauteilliste:<\/span>\r\n<span style=\"color: #0000ff;\">.\/relativer_verzeichnispfad_1\/datei_1.txt:ingesamt 25 Bauteile<\/span>\r\n<span style=\"color: #0000ff;\">.\/relativer_verzeichnispfad_2\/datei_2.txt:hohe Bauteile, gr\u00f6\u00dfer 2m kommen<\/span>\r\n<span style=\"color: #0000ff;\">.\/relativer_verzeichnispfad_2\/datei_2.txt:kleine Bauteile werden getragen<\/span>\r\n<span style=\"color: #0000ff;\">.\/relativer_verzeichnispfad_2\/datei_2.txt:Bauteillisten gibt es unter ...<\/span>\r\n<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Zur Suche von Textteilen\/Strings in bestimmten Dateien, die in verschiedenen Verzeichnissen liegen, kann folgendes Kommando verwendet werden &#8230;<\/p>\n <a class=\"more-link\" href=\"https:\/\/www.symablog.de\/blog\/unix-suchen-von-textstrings-in-dateien-unterschiedlicher-verzeichnisse\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a>","protected":false},"author":2,"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_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[78,44],"tags":[114,115,116],"class_list":["post-753","post","type-post","status-publish","format-standard","hentry","category-praxis","category-unix","tag-find","tag-grep","tag-text-in-dateien-suchen"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":false,"jetpack_shortlink":"https:\/\/wp.me\/p37Rzq-c9","_links":{"self":[{"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/posts\/753"}],"collection":[{"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/comments?post=753"}],"version-history":[{"count":9,"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/posts\/753\/revisions"}],"predecessor-version":[{"id":1059,"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/posts\/753\/revisions\/1059"}],"wp:attachment":[{"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/media?parent=753"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/categories?post=753"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/tags?post=753"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}