Listet nur bestimmte Dateien in einem Verzeichnis auf, das dem Wort BOZO entspricht und mit "123" oder "456" endet

7

Ich versuche herauszufinden, wie man eine Liste von Dateinamen für eine Datei namens BOZO erhält, die aber mit NUR 123 ODER 456 endet.

Dateien sind:

BOZO12389,
BOZOand3
BOZOand456
BOZOand5
BOZOhello123

Der Befehl sollte also nur 'BOZOhello123' und 'BOZOand456'

anzeigen

Ich kann es nicht herausfinden. Ich habe alle Formen von LS und GREP ausprobiert, die ich mir vorstellen kann. Das Lustige ist, wir haben versucht, es in der Klasse für ca. 10 Minuten zu tun und niemand konnte es (einschließlich der Lehrer) bekommen.

    
Geordie 14.06.2011, 19:44
quelle

5 Antworten

10

Ich habe Folgendes getan und es hat funktioniert

%Vor%     
dave 14.06.2011 19:51
quelle
8

Verwenden von Shells Globs:

%Vor%     
ninjalj 14.06.2011 19:47
quelle
2

Verwenden Sie reguläre Ausdrücke, um Ihnen zu helfen. Der Befehl egrep sollte helfen, da Sie damit reguläre Ausdrücke verwenden können.

Sie suchen nach Dateien der Art BOZO456 und BOZO123

Ein Punkt . ist ein Joker, mit dem Sie <anything> ersetzen können. Mit * können Sie es mindestens einmal wiederholen. Indem Sie runde Klammern von 123 und 456 platzieren, simulieren Sie ein ODER.

Sie möchten also, dass ein Zeichen 0 oder mehrmals wiederholt wird, gefolgt von 123 oder 456.

Beispiel:

egrep "BOZO.*(456|123)" data

Danke an Nathan Fellman für die Hilfe und die Änderungen.

    
digerati32 14.06.2011 19:56
quelle
1

Sie können auch den Befehl find verwenden:

%Vor%     
driquet 14.06.2011 20:02
quelle
0

Das sollte nicht so schwer sein. Am naivsten ist es, ls in das Verzeichnis einzutragen und dann nur nach dem zu suchen, was Sie wollen:

%Vor%     
Nathan Fellman 14.06.2011 19:47
quelle

Tags und Links