2016-11-23 4 views
0

Ich versuche, eine bestimmte Datei auf den Befehl "suchen" in der Bash-Shell umleiten, indem Sie den folgenden Befehl verwenden.Wie wird eine bestimmte Datei an einen Suchbefehl weitergeleitet?

ls sample.txt | find -name "*ple*" 

Ich mag die Unter Zeichenfolge ple im Dateinamen suchen sample.txt, die ich bestanden haben, aber der obige Befehl wird in dem Verzeichnis für das Spiel von allen Dateien zu überprüfen. Es sucht nicht nach der Übereinstimmung in der spezifischen Datei, die ich mit der Pipe übergeben habe.

+1

bitte bearbeiten Sie Ihre Q zu zeigen, was aus dem Betrieb Ihrer erforderlichen ausgegeben wird. Wenn Sie versuchen, 'ls -l' für Ihre Datei zu verwenden, müssen Sie nur' find -name '* ple' -ls 'finden ('find' ist nicht dafür gedacht, von' stdin' zu lesen). Viel Glück. – shellter

+0

['ls' ist kein geeignetes Werkzeug für den programmatischen Gebrauch] (http://mywiki.wooledge.org/ParsingLs). Was ist Ihr eigentliches Ziel, im Gegensatz zu den Tools, die Sie gemeinsam verwenden möchten? –

+0

Warum denkst du, du brauchst 'find'? Dies sollte nur sein 'Grep ple sample.txt' – Barmar

Antwort

0

Sie müssen den grep Befehl nicht find verwenden, der das Dateisystem durchsucht.

0

Wenn Sie für die Unterfolge „ple“ im Dateinamen „sample.txt“ suchen, dann würde dieser Code tun, was Sie brauchen:

mkdir -p /tmp/holder-file/ && cp /directory/sample.txt /tmp/holder-file/ && ls /tmp/holder-file/ | grep -e "ple" 

nicht super elegant aber funktioniert super.

bearbeiten: Dank Benjamin W., der mit einer eleganteren Lösung kam:

grep -e 'ple' <<< '/directory/sample.txt' 
+0

Dies würde die _contents_ von 'sample.txt' für den String' ple' prüfen, nicht den Dateinamen. Sie müssen zum Beispiel eine here-Zeichenfolge verwenden, um zu tun, was Sie wollen: 'grep 'ple' <<< '/ directory/sample.txt'' –

+0

Sie haben Recht. Ich habe die Frage missverstanden und werde meine Antwort korrigieren. –

+0

Ok, korrigiert meine Antwort, danke für meinen Fehler. Ihre Lösung ist übrigens sehr elegant. –

Verwandte Themen