Nephilim94
Anmeldungsdatum: 10. April 2012
Beiträge: 35
Wohnort: DE, Hessen, Nst.
|
Hallo, ich hatte in meinem Script folgenden String | find . -name "*_${akda}.log" -print
|
jetzt ist allerdings noch eine Bedingung dazu gekommen und ich benötige die Funktion oder, aber verstehe nicht wie ich sie Anwengen soll.
Ja, ich habe auch mal find --help versucht, aber hilft mir ehrlichgesagt nicht wirklich. | find . -name "*_20120520.log" -or "*j.log" -print
|
..gibt einen Error. | find . -name "*_20120520.log"-or"*j.log" -print
|
..geht aber findet nicht das was es soll.
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 12832
|
Moin! Nephilim94 schrieb: Hallo, ich hatte in meinem Script folgenden String | find . -name "*_${akda}.log" -print
|
jetzt ist allerdings noch eine Bedingung dazu gekommen und ich benötige die Funktion oder, aber verstehe nicht wie ich sie Anwengen soll.
Ja, ich habe auch mal find --help versucht, aber hilft mir ehrlichgesagt nicht wirklich.
man find auch nicht?
| find . -name "*_20120520.log" -or "*j.log" -print
|
..gibt einen Error.
Klar, rechts von "-or" steht ja kein gültiger Test.
| find . -name "*_20120520.log"-or"*j.log" -print
|
..geht aber findet nicht das was es soll.
Logisch, denn jetzt suchst Du nach einem Namen mit dem Muster "*_20120520.log-or*j.log". Das "-or" (bzw. "-o") muss schon ein eigenes Argument sein (also mit Whitespace vom Rest getrennt). Außerdem musst Du richtig klammern, sonst geht's nicht:
| find . \( -name "*_20120520.log" -or -name "*j.log" \)
|
Ciao robert
|
Nephilim94
(Themenstarter)
Anmeldungsdatum: 10. April 2012
Beiträge: 35
Wohnort: DE, Hessen, Nst.
|
Moin =P
dankeschön, nein, auf der Manpage hatte ich nicht nachgeschaut, hast du Recht, wäre auch noch ne Option gewesen, bin auch grade mal am reinschauen. Also dein String Funktioniert, aber liefert mir noch nicht das gewünschte Ergebnis, da er etw. nicht findet obwohl es "einzeln" gefunden wird, ich kann aber keine 2 find's machen, da der String eine Schleifenbedingung ist. (s. Anhang)
- Bilder
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 12832
|
Nephilim94 schrieb: Moin =P
dankeschön, nein, auf der Manpage hatte ich nicht nachgeschaut, hast du Recht, wäre auch noch ne Option gewesen, bin auch grade mal am reinschauen. Also dein String Funktioniert, aber liefert mir noch nicht das gewünschte Ergebnis, da er etw. nicht findet obwohl es "einzeln" gefunden wird, ich kann aber keine 2 find's machen, da der String eine Schleifenbedingung ist. (s. Anhang)
Der "-print" steht falsch. Ciao robert
|
stfischr
Anmeldungsdatum: 1. März 2007
Beiträge: 19197
|
Du hast das -print mit in die Klammern gepackt. PS: bitte den Terminalinhalt kopieren und nicht per Screenshot hier einfügen.
|
Nephilim94
(Themenstarter)
Anmeldungsdatum: 10. April 2012
Beiträge: 35
Wohnort: DE, Hessen, Nst.
|
Ahh, kaum macht man es richtig gehts. Danke! 👍 Entschuldigung, sah ich grad als einfachste Methode es zu verdeutlichen. In Zukunft werde ich wieder die Codebox benutzen. 😇
|
jubuntu79
Anmeldungsdatum: 13. Februar 2011
Beiträge: 466
Wohnort: Nürnberg
|
Hallo, ein paar Anmerkungen, evtl. sind diese unpassend, weil ich nicht genau weiß, welche Dateien und Ordner sich in Deinem Verzeichnis befinden können.
| find . -type f \( -iname "*_20120520.log" -o -iname "*j.log" \) -print
|
-type f sorgt dafür, dass nur Dateien und keine Ordner gefunden werden. Nur für den Fall, dass ein Ordnername auf das Suchmuster passt -o bewirkt dasselbe wie -or, ist aber POSIX compliant -iname statt -name findet auch Dateien, wo die Endung .LOG großgeschrieben ist. Gruß jubuntu79
|
Nephilim94
(Themenstarter)
Anmeldungsdatum: 10. April 2012
Beiträge: 35
Wohnort: DE, Hessen, Nst.
|
Achwas, keineswegs unpassend. Nützliche Info's, danke! ☺
Das -type & -o werde ich auch mit rein nehmen, .LOG's brauch ich nicht, aber "-iname" ist dokumentiert. 😛
|