Saturday 21 October 2017

Linux Grep No Binary Option


Grep - Unix, Linux Command Recurse in Verzeichnissen überspringen Datei passend PATTERN. Unterdrücken von Fehlermeldungen über nicht vorhandene oder nicht lesbare Dateien. Portabilitätshinweis: im Gegensatz zu GNU grep. Traditionelle grep nicht mit POSIX.2, weil traditionelle grep fehlte eine Option - q und seine - s Option verhielt sich wie GNU grep rsquos - q Option. Shell-Skripte, die dazu bestimmt sind, tragbar zu traditionellen Grep zu sein, sollten beide - q und - s vermeiden und sollten stattdessen die Ausgabe umleiten. Behandle die Datei (en) als binär. Standardmäßig, unter MS-DOS und MS-Windows, grep grep den Dateityp, indem man den Inhalt des ersten 32KB aus der Datei liest. Wenn grep entscheidet, dass die Datei eine Textdatei ist, streift sie die CR-Zeichen aus dem ursprünglichen Dateiinhalt (um reguläre Ausdrücke zu machen und korrekt zu funktionieren). Die Angabe von - U übergreift diese Vermutung, so dass alle Dateien gelesen und an den passenden Mechanismus verbatim übergeben werden, wenn die Datei eine Textdatei mit CRLF-Paaren am Ende jeder Zeile ist, wird dies dazu führen, dass einige reguläre Ausdrücke fehlschlagen. Diese Option hat keine Auswirkung auf andere Plattformen als MS-DOS und MS-Windows. Unix-artige Byte-Offsets melden. Dieser Schalter veranlasst grep, Byte-Offsets zu melden, als ob die Datei Unix-Style-Textdatei wäre, d. h. mit CR-Zeichen, die ausgeschaltet wurden. Dies führt zu Ergebnissen, die mit dem Ausführen von Grep auf einer Unix-Maschine identisch sind. Diese Option hat keine Wirkung, es sei denn, die Option - b wird auch verwendet, sie hat keine Auswirkung auf andere Plattformen als MS-DOS und MS-Windows. Drucken Sie die Versionsnummer von grep auf Standardfehler. Diese Versionsnummer sollte in alle Fehlerberichte aufgenommen werden (siehe unten). Umkehren Sie den passenden Treffer, um nicht übereinstimmende Zeilen auszuwählen. Wählen Sie nur diejenigen Zeilen aus, die Übereinstimmungen enthalten, die ganze Wörter bilden. Der Test ist, dass der passende Teilstring entweder am Anfang der Zeile sein muss oder einem Nicht-Wort-Konstituenten-Charakter vorausgeht. Ähnlich muss es entweder am Ende der Zeile oder gefolgt von einem Nicht-Wort-Bestandteil sein. Wortbestimmende Zeichen sind Buchstaben, Ziffern und Unterstrich. Wählen Sie nur die Spiele aus, die genau der ganzen Zeile entsprechen. Veraltetes Synonym für - i. Geben Sie ein Null-Byte (das ASCII-NUL-Zeichen) anstelle des Zeichens aus, das normalerweise einem Dateinamen folgt. Zum Beispiel gibt grep - lZ ein Null-Byte nach jedem Dateinamen anstelle des üblichen Zeilenumbruchs aus. Diese Option macht die Ausgabe eindeutig, auch in Anwesenheit von Dateinamen mit ungewöhnlichen Zeichen wie Newlines. Diese Option kann mit Befehlen wie find - print0 verwendet werden. Perl -0 Sort - z. Und xargs -0, um beliebige Dateinamen zu verarbeiten, auch solche, die Zeilenumbrüche enthalten. Zur Suche nach dem angegebenen String in einer einzigen Datei test. sh cat test. sh binbash fun () echo Dies ist ein Test. Beenden Sie unsere Shell-Skript mit Erfolg Nachricht Exit 1 von oben Datei grep exit: grep exit demofile To Überprüfen für die angegebene Zeichenfolge in mehreren Dateien: In diesem Fall test. sh und test1.sh cat test. sh binbash fun () echo Dies ist ein Test. Beenden Sie unsere Shell-Skript mit Erfolg Nachricht Exit 1 Katze test1.sh binbash Spaß () Echo Dies ist ein test1. Beenden Sie unser Shell-Skript mit Erfolg Nachricht beenden 0 grep exit in beiden Dateien test. sh und test1.sh: test1.sh: exit 0 test. sh: exit 1 Um Fall unempfindliche Suche mit grep - i, hinzugefügt EXIT in test1.sh cat Test1.sh binbash fun () echo Dies ist ein Test1. Beenden Sie unser Shell-Skript mit Erfolgsmeldung, EXIT mit 0 Exit 0 grep exit test1.sh test1.sh: exit 0 grep - i exit test test1.sh: Beenden Sie unser Shell-Skript mit Erfolgsmeldung EXIT mit 0 test1.sh: exit 0 Zwei Zeilen mit - i Option, da es unempfindlich ist. Sagen habe ich die folgende Binärdatei erstellt: Und sagen, ich möchte die Orte aller Nullen (0x00) mit einer grep-ähnlichen Syntax finden. Das Beste, was ich so weit machen kann, ist jedoch: Implizit konvertiert jedes Byte in der ursprünglichen Binärdatei in eine Multi-Byte-ASCII-Darstellung, auf der grep funktioniert nicht genau das prime Beispiel der Optimierung :) Gibt es so etwas wie ein Binär-Grep für Linux Möglicherweise auch etwas, das eine reguläre Ausdrucks-ähnliche Syntax unterstützen würde, aber auch für Byte-Zeichen - das heißt, ich könnte so etwas wie ein (x00) b schreiben und null oder mehr Vorkommen von Byte 0 zwischen Bytes a (97) Und b (98) EDIT: Der Kontext ist, dass ich an einem Treiber arbeite, wo ich 8-Bit-Daten erfasse, etwas schief geht in den Daten, die Kilobytes bis zu Megabyte sein können, und Id wie auf bestimmte Signaturen zu überprüfen und wo sie sind auftreten. (So ​​weit, Im arbeiten mit kilobyte snippets, so optimierung ist nicht so wichtig - aber wenn ich anfange, einige fehler in megabyte lange fänge zu bekommen, und ich muss diese analysieren, meine vermutung ist, ich möchte etwas mehr optimiert :). Und vor allem, Id wie etwas, wo ich für ein Byte als Charakter greifen kann - hexdump zwingt mich, Strings pro Byte zu suchen) EDIT3: Dank der Antwort von tchrist, hier ist auch ein Beispiel mit Grepping und Matching und zeigt Ergebnisse (obwohl Nicht ganz die gleiche Frage wie OP): Um die übereinstimmenden Daten als ein Byte (zwei Hex-Zeichen) gruppiert zu werden, dann H2 H2 H2. Muss für so viele Bytes angegeben werden, die in der passenden Zeichenfolge als mein Spiel vorhanden sind. 000xCC000 Deckt 17 Bytes ab, ich kann H2x17 in Perl schreiben. Jeder dieser H2 wird eine separate Variable (wie in einer Liste) zurückgeben, also muss auch verwendet werden, um Leerzeichen zwischen ihnen hinzuzufügen - schließlich: Nun. In der Tat Perl ist sehr nette Binär-Grepping-Anlage, muss ich zugeben :) Solange man die Syntax richtig lernt :) gefragt am 14. November 10 um 22:31 Wie würde man dies auf beliebige binäre Strings anwenden Ich habe deine Perl - ln0777e 39print pos () Während 47illegal47g39 47usr47bin47awk Ansatz zu finden verlorenen Inhalt in einer rohe Festplatte Gerät Datei, aber perl barfed bei mir mit quotOut von memoryquot partway durch. Ndash fuzzyTew Dec 9 16 at 14:12 Ein Weg, um Ihr sofortiges Problem mit nur grep zu lösen ist, um eine Datei mit einem einzigen Null-Byte zu erstellen. Danach wird grep - abo - f nullbytefile targetfile die folgende Ausgabe erzeugen. Das ist natürlich jeder Byte-Offset, wie von - b gefolgt von einem Null-Byte, wie von - o Id gefragt, die erste, die perl befürworten, aber in diesem Fall theres keine Notwendigkeit, in die erweiterte Familie zu bringen. Linux und Unix grep Befehl grep . Die für den globalen regulären Ausdruck steht, druckt Textzeilenzeilen und druckt alle Zeilen, die mit einem bestimmten Muster übereinstimmen. Grep-Syntax Grep ist ein leistungsfähiges Werkzeug für die Übereinstimmung eines regulären Ausdrucks gegen Text in einer Datei, mehreren Dateien oder einem Strom von Eingabe. Es sucht nach dem PATTERN des Textes, den Sie auf der Befehlszeile angeben, und gibt die Ergebnisse für Sie aus. Beispiel Usage Lets sagen, wollen schnell finden Sie die Phrase unsere Produkte in HTML-Dateien auf Ihrem Computer. Beginnen wir mit einer einzigen Datei. Hier ist unser PATTERN unsere Produkte und unsere FILE ist product-listing. html. Es wurde eine einzige Zeile gefunden, die unser Muster enthält, und grep gibt die gesamte passende Linie an das Terminal aus. Die Linie ist länger als unsere Terminalbreite, so dass der Text auf die folgenden Zeilen umschlingt, aber dieser Ausgang entspricht genau einer Zeile in unserer FILE. Anmerkung: Das PATTERN wird von grep als regulärer Ausdruck interpretiert. Im obigen Beispiel werden alle Zeichen, die wir verwendet haben (Buchstaben und ein Raum), buchstäblich in regulären Ausdrücken interpretiert, so dass nur die genaue Phrase abgestimmt wird. Andere Charaktere haben besondere Bedeutungen, aber mdash einige Satzzeichen, zum Beispiel. Weitere Informationen finden Sie in unserem Regular Expression Quick Reference. Anzeigen von grep-Ausgabe in Farbe Wenn wir die Option - color verwenden, werden unsere erfolgreichen Spiele für uns hervorgehoben: Zeilennummern der erfolgreichen Spiele anzeigen Es wird noch nützlicher, wenn wir wissen, wo die passende Zeile in unserer Datei erscheint. Wenn wir die Option - n angeben, wird grep jede passende Zeile mit der Zeilennummer vorangestellt: Unsere passende Zeile ist mit 18 vorangestellt: das sagt uns, dass dies der Zeile 18 in unserer Datei entspricht. Wenn Sie unsere Produkte zu Beginn eines Satzes erscheinen oder ganz in Großbuchstaben erscheinen, können wir die Option - i angeben, um eine Groß - / Kleinschreibung zu treffen: Mit der Option - i findet grep eine Übereinstimmung auf der Linie 23 auch Suche nach mehreren Dateien mit einem Platzhalter Wenn wir mehrere Dateien zu durchsuchen haben, können wir sie alle mit einem Platzhalter in unserem FILE-Namen durchsuchen. Anstelle der Angabe von product-listing. html. Wir können eine asterisk () und die. html Erweiterung verwenden. Wenn der Befehl ausgeführt wird, erweitert die Shell das Sternchen auf den Namen einer beliebigen Datei, die sie findet (im aktuellen Verzeichnis), die in. html endet. Beachten Sie, dass jede Zeile mit der spezifischen Datei beginnt, wo diese Übereinstimmung auftritt. Rekursive Suche nach Unterverzeichnissen Wir können unsere Suche auf Unterverzeichnisse und alle Dateien, die sie enthalten, mit der Option - r erweitern, die es gern macht, ihre Suche rekursiv durchzuführen. Wir können unseren FILE-Namen nur auf einen Asterisk () ändern, damit er mit jedem Datei - oder Verzeichnisnamen übereinstimmt und nicht nur HTML-Dateien: Das gibt uns drei weitere Spiele. Beachten Sie, dass der Verzeichnisname für alle passenden Dateien enthalten ist, die sich nicht im aktuellen Verzeichnis befinden. Verwenden von regulären Ausdrücken, um leistungsfähigere Suchvorgänge durchzuführen Die wahre Macht von grep ist, dass es verwendet werden kann, um reguläre Ausdrücke zu entsprechen. (Das ist, was die re in grep steht). Reguläre Ausdrücke verwenden Sonderzeichen in der PATTERN-Zeichenfolge, um eine breitere Palette von Zeichenfolgen anzupassen. Lass uns ein einfaches Beispiel ansehen. Lets sagen, Sie wollen jedes Vorkommen einer Phrase ähnlich wie unsere Produkte in Ihren HTML-Dateien zu finden, aber die Phrase sollte immer mit unserem beginnen und mit Produkten enden. Wir können dieses PATTERN stattdessen angeben: our. products. In regulären Ausdrücken wird die Periode (.) Als ein-Zeichen-Platzhalter interpretiert. Es bedeutet, dass jeder Charakter, der an dieser Stelle erscheint, zusammenpassen wird. Das Sternchen () bedeutet, dass das vorangehende Zeichen, das null oder mehrmals erscheint, übereinstimmt. Also die Kombination. Wird jede beliebige Anzahl von Zeichen entsprechen. Zum Beispiel werden unsere erstaunlichen Produkte, unsere, die besten Produkte, und sogar unsere Produkte passen. Und weil wir die Option - i angeben, werden auch unsere Produkte und OuRpRoDuCtS passen. Lass den Befehl mit diesem regulären Ausdruck ausführen und sehen, welche zusätzlichen Spiele wir bekommen können: Hier haben wir auch ein Spiel aus der Phrase unsere feinen Produkte. Grep ist ein leistungsfähiges Werkzeug, das Ihnen helfen kann, mit Textdateien zu arbeiten, und es wird sogar noch leistungsfähiger, wenn Sie mit regulären Ausdrücken bequem werden. Technische Beschreibung grep sucht die benannte Eingabe FILE s (oder Standard-Eingabe, wenn keine Dateien benannt sind oder wenn ein einziger Bindestrich (-) als Dateiname angegeben wird) für Zeilen, die eine Übereinstimmung mit dem angegebenen PATTERN enthalten. Standardmäßig druckt grep die passenden Zeilen. Darüber hinaus sind drei Variantenprogramme egrep. Fgrep und rgrep sind vorhanden: egrep ist das gleiche wie running grep - E. In diesem Modus wertet grep Ihren PATTERN String als erweiterten regulären Ausdruck (ERE) aus. Heutzutage verlängert sich die ERE nicht weit über die grundlegenden regulären Ausdrücke hinaus, aber sie können immer noch sehr nützlich sein. Weitere Informationen zu erweiterten regulären Ausdrücken finden Sie unter Basic vs. Extended Regular Expressions. unten. Fgrep ist das gleiche wie läuft grep - F. In diesem Modus wertet grep Ihre PATTERN-Zeichenfolge als feste Zeichenfolge mdash aus, jedes Zeichen in deiner Zeichenfolge wird wörtlich behandelt. Zum Beispiel, wenn Ihr String ein Sternchen () enthält, wird grep versuchen, es mit einem tatsächlichen Asterisk anstatt zu interpretieren, dies als Platzhalter zu entsprechen. Wenn Ihr String mehrere Zeilen enthält (falls er Zeilenumbrüche enthält), wird jede Zeile als fester String betrachtet, und jeder von ihnen kann eine Übereinstimmung auslösen. Rgrep ist das gleiche wie läuft grep - r. In diesem Modus wird grep seine Suche rekursiv durchführen. Wenn es auf ein Verzeichnis trifft, wird es in dieses Verzeichnis übergehen und weiter suchen. (Symbolische Links werden ignoriert, wenn Sie Verzeichnisse durchsuchen möchten, die symbolisch verknüpft sind, sollten Sie stattdessen die Option - R verwenden). Bei älteren Betriebssystemen, egrep. Fgrep und rgrep waren verschiedene Programme mit ihren eigenen Exectuables. In modernen Systemen sind diese speziellen Befehlsnamen einfach Verknüpfungen zu grep mit den entsprechenden Flags aktiviert. Sie sind funktional gleichwertig. Allgemeine Optionen Eine Hilfemeldung ausdrucken, die die Befehlszeilenoptionen kurz zusammenfasst und beendet. Wenn möglich, verwenden Sie den mmap-Systemaufruf, um den Eingang zu lesen, anstelle des Standard-Systemaufrufs. In einigen Situationen liefert --mmap eine bessere Leistung. Jedoch kann --mmap ein undefiniertes Verhalten verursachen (einschließlich Core Dumps), wenn eine Eingabedatei schrumpft, während grep funktioniert oder wenn ein IO-Fehler auftritt. Behandle die Datei (en) als binär. Standardmäßig, unter MS-DOS und MS-Windows, grep grep den Dateityp, indem man den Inhalt des ersten 32KB aus der Datei liest. Wenn grep entscheidet, dass die Datei eine Textdatei ist, streift sie die CR-Zeichen aus dem ursprünglichen Dateiinhalt (um reguläre Ausdrücke zu machen und korrekt zu funktionieren). Die Angabe von - U übergreift diese Vermutung, so dass alle Dateien gelesen und an den passenden Mechanismus verbatim übergeben werden, wenn die Datei eine Textdatei mit CRLF-Paaren am Ende jeder Zeile ist, wird dies dazu führen, dass einige reguläre Ausdrücke fehlschlagen. Diese Option hat keine Auswirkung auf andere Plattformen als MS-DOS und MS-Windows. Behandeln Sie die Eingabe als eine Reihe von Zeilen, die jeweils durch ein Null-Byte (das ASCII-NUL-Zeichen) anstelle einer Zeilenumbruch beendet werden. Wie die Option - Z oder --null, kann diese Option mit Befehlen wie sort - z verwendet werden, um beliebige Dateinamen zu verarbeiten. Reguläre Ausdrücke Ein regulärer Ausdruck ist ein Muster, das einen Satz von Zeichenfolgen beschreibt. Regelmäßige Ausdrücke werden analog zu arithmetischen Ausdrücken konstruiert, indem verschiedene Operatoren verwendet werden, um kleinere Ausdrücke zu kombinieren. Grep versteht drei verschiedene Versionen der regulären Ausdruckssyntax: quotbasicquot (BRE), quotextendedquot (ERE) und quotperlquot (PRCE). In GNU grep. Es gibt keinen Unterschied in der verfügbaren Funktionalität zwischen grundlegenden und erweiterten Syntaxen. In anderen Implementierungen sind grundlegende reguläre Ausdrücke weniger mächtig. Die folgende Beschreibung gilt für erweiterte reguläre Ausdrücke Unterschiede für grundlegende reguläre Ausdrücke werden danach zusammengefasst. Perl reguläre Ausdrücke geben zusätzliche Funktionalität. Die grundlegenden Bausteine ​​sind die regulären Ausdrücke, die mit einem einzigen Charakter übereinstimmen. Die meisten Charaktere, einschließlich aller Buchstaben und Ziffern, sind reguläre Ausdrücke, die sich selbst übereinstimmen. Jeder Meta-Charakter mit besonderer Bedeutung kann durch Vorfahren mit einem Backslash zitiert werden. Die Periode (.) Passt zu jedem einzelnen Zeichen. Zeichenklassen und Klammerausdrücke Ein Klammerausdruck ist eine Liste von Zeichen, die von und eingeschlossen sind. Es stimmt mit jedem einzelnen Zeichen in dieser Liste überein, wenn das erste Zeichen der Liste das Caret ist, dann passt es jedem Zeichen nicht in der Liste. Zum Beispiel entspricht der reguläre Ausdruck 0123456789 einer einzelnen Ziffer. Innerhalb eines Klammerausdrucks besteht ein Bereichsausdruck aus zwei Zeichen, die durch einen Bindestrich getrennt sind. Es passt zu jedem einzelnen Zeichen, das zwischen den beiden Zeichen, einschließlich, unter Verwendung der Locales Sortierreihenfolge und Zeichensatz sortiert. Zum Beispiel ist im Standard-C-Gebietsschema a-d äquivalent zu abcd. Viele Locales sortieren Zeichen in der Wörterbuchreihenfolge, und in diesen Gebietsschemata a-d ist in der Regel nicht gleichbedeutend mit abcd es könnte äquivalent zu aBbCcDd sein. beispielsweise. Um die traditionelle Interpretation von Klammerausdrücken zu erhalten, können Sie das C-Gebietsschema verwenden, indem Sie die LCALL-Umgebungsvariable auf den Wert C setzen. Schließlich sind bestimmte Namensklassen in Klammerausdrücken wie folgt vordefiniert. Ihre Namen sind selbsterklärend, und sie sind: alnum:. : Alpha:. : Cntrl:. : Ziffer:. : Graph:. :niedriger: . :drucken: . : Punkt: :Platz: . : Obere:. Und: xdigit:. Zum Beispiel: alnum: bedeutet die Zeichenklasse von Zahlen und Buchstaben im aktuellen Gebietsschema. In der C-Locale - und ASCII-Zeichensatz-Codierung ist dies das gleiche wie 0-9A-Za-z. (Beachten Sie, dass die Klammern in diesen Klassennamen Teil der symbolischen Namen sind und zusätzlich zu den Klammern enthalten sein müssen, die den Klammerausdruck abgrenzen.) Die meisten Meta-Zeichen verlieren ihre besondere Bedeutung in Klammerausdrücken. Um einen wörtlichen Platz einzuschließen, ist er zuerst in der Liste. In ähnlicher Weise, um einen wörtlichen Ort es überall, aber zuerst. Schließlich, um ein Literal -. Legen Sie es zuletzt Das Caret und das Dollarzeichen sind Meta-Zeichen, die jeweils mit dem leeren String am Anfang und Ende einer Zeile übereinstimmen. Der Backslash-Charakter und die Sonderausdrücke Die Symbole lt und gt entsprechen jeweils dem leeren String am Anfang und Ende eines Wortes. Das Symbol b stimmt mit dem leeren String am Rand eines Wortes überein, und B stimmt mit dem leeren String überein, sofern er nicht am Rand eines Wortes steht. Das Symbol w ist ein Synonym für: alnum: und W ist ein Synonym für: alnum:. Wiederholung Ein regulärer Ausdruck kann von einem von mehreren Wiederholungsoperatoren gefolgt werden: Wenn Sie die Erweiterung oder das Muster der Datei kennen, die Sie möchten, ist eine andere Methode zu verwenden --include Option: Sie können auch Dateien mit ausschließen - ausschließen. Wenn Sie häufig durch Code suchen, ist Ag (The Silver Searcher) eine viel schnellere Alternative zu grep, das ist für die Suche nach Code angepasst. Zum Beispiel, seine rekursive standardmäßig und ignoriert automatisch Dateien und Verzeichnisse in. gitignore aufgelistet. So dass Sie nicht haben, um die gleichen umständlichen ausschließen Optionen zu grep oder finden. Beantwortet Dec 30 11 at 22:59 Ich denke das sollte ein. Am Ende, nicht ein ndash Raphael Jun 21 12 um 22:59 Works toll mit grep das kommt mit Linux amp Cygwin, aber nicht mit dem, der mit AIX kommt. Ndash Withheld Jan 31 13 um 20:08 Sollte --includequot. txtquot ndash Krzysztof Wolny 18 Dez 13 um 13:28 KrzysztofWolny: anstatt funktioniert ganz gut auf Ubuntu. PS: that39s soll ein Backticked-Raum sein, aber der SO-Markdown-Parser ist fehlgeschlagen. Ndash Dan Dascalescu Feb 19 14 at 9:08 In - exec Option - Symbol ist ein Verweis auf den Dateinamen, der derzeit von Find Tool gefunden wird (das ist etwas mit dem Dateinamen, den wir gefunden haben), auch - exec Option sollte mit Symbol beendet werden (Um das Ende der Exec-Befehle zu markieren), aber weil das alles in einer Shell läuft, sollte das Symbol entkommen sein. Und schließlich - print-Option finden Sie Tool zum Ausdrucken gefundenen Dateinamen auf dem Bildschirm. Ndash rook Apr 27 16 at 9:47 ag ist meine Lieblings-Weg, dies zu tun jetzt githubggreerthesilversearcher. Sein grundsätzlich das gleiche wie ack aber mit ein paar mehr optimierungen. Antwortete Mai 21 14 um 23:37 nur die Dateien können nützlich sein, um zu beantworten Dec 3 12 at 17:48 Dies sollte funktionieren: beantwortet Dec 19 13 at 7:20 Um den Namen der Dateien mit Pfad rekursiv mit dem bestimmten String verwenden unter Befehl zu finden Für UNIX: finden Sie eine Datei auf UNIX-Server finden Sie eine Datei auf LINUX Server beantwortet Jan 29 16 at 14:31 Wenn Sie nur wollen, um aktuelle Verzeichnisse und nicht symbolische Links folgen, wenn Sie symbolische Links sowie aktuelle Verzeichnisse folgen wollen ( Sei vorsichtig von unendlicher Rekursion), Da du versuchst, rekursiv zu greifen, kannst du auch die folgenden Optionen nützlich sein: Wenn du also alle Dateien finden willst, die Darth Vader im aktuellen Verzeichnis oder in Unterverzeichnissen enthalten und den Dateinamen und die Zeilennummer erfassen, Aber nicht wollen, dass die Rekursion symbolischen Links folgen wird, wäre der Befehl Wenn du alle Erwähnungen des Wortes Katze im Verzeichnis finden möchtest und du gerade im Verzeichnis bist und du den Dateinamen aber nicht die Zeilennummer einer Instanz erfassen möchtest Von den String Katzen, und Sie wollen die Rekursion, um symbolische Links folgen, wenn es sie findet, könnten Sie eine der folgenden laufen grep --help Eine kurze Einführung in symbolische Links, für jeden, der diese Antwort liest und verwirrt durch meine Referenz auf sie : Nixtutorfreebsdunderstanding-symbolic-links Wenn Sie nach einem bestimmten Inhalt in allen Dateien aus einer Verzeichnisstruktur suchen, können Sie finden, da es klarer ist, was Sie tun: Beachten Sie, dass - l (Downcase von L) den Namen des Datei, die den Text enthält. Entfernen Sie es, wenn Sie stattdessen das Spiel selbst drucken möchten. Oder benutze - H, um die Datei zusammen mit dem Spiel zu bekommen. Alle zusammen sind andere Alternativen: Wo - n druckt die Zeilennummer. Antwortete am 30. November 15 um 16:19 Up-stimmte für die einzige Lösung zu finden, um beide zu vermeiden unnötige Verwendung von xargs und verwenden statt mit - exec. Wodurch Tonnen unnötiger Prozessstarts vermieden werden. -) ndash ShadowRanger Jan 30 16 at 8:08 In meinem IBM AIX Server (OS Version: AIX 5.2), verwenden Sie: Dies wird ausdrucken Pfadfile Name und relative Zeilennummer in der Datei wie: 2865: Beschreibung. StringYouWannaFind sowieso funktioniert es für mich. ) Nun, nein - xargs ist speziell für die Umwandlung einer Pfeife von Argumenten zu einem Arglisten, aber ja, es ist wahr, dass moderne xargs bei Verwendung mit - s andor - L können mit sehr langen Arglisten, indem sie in mehrere Befehlsaufrufe, aber es Isn39t konfiguriert, dass Weg standardmäßig (und war nicht in einer der oben genannten Antworten). Als Beispiel: find. - type f xargs - L 100 grep whatever ndash m. thome Apr 23 15 um 13:56 Welche Plattform wäre das auf POSIX xargs ist standardisiert, um dieses Verhalten aus der Box zu haben. Das xargs-Dienstprogramm begrenzt die Befehlszeilenlänge, so dass bei der Aufruf der Befehlszeile die kombinierten Argument - und Umgebungslisten aufgelistet werden. Darf nicht mehr als -2048 bytes. quot ndash tripleee Apr 23 15 um 15:42 grep rekursiv

No comments:

Post a Comment