Variable übergeben - find

S

SelKai

Mitglied
Thread Starter
Dabei seit
10.07.2005
Beiträge
81
Reaktionspunkte
0
Hallo,

wie sage ich denn einer find-Anweisung, dass nach einer Variablen gesucht werden soll? Ich dachte etwa so: find "& VariablenName" searching in ...
doch so geht das nicht.

Vielen Dank. Kai.
 
Auszug aus man find:

EXAMPLES

The following examples are shown as given to the shell:

find / \! -name "*.c" -print
Print out a list of all the files whose names do not end in .c.

find / -newer ttt -user wnj -print
Print out a list of all the files owned by user ``wnj'' that are
newer than the file ttt.

find / \! \( -newer ttt -user wnj \) -print
Print out a list of all the files which are not both newer than
ttt and owned by ``wnj''.

find / \( -newer ttt -or -user wnj \) -print
Print out a list of all the files that are either owned by
``wnj'' or that are newer than ttt.

find . -newerct '1 minute ago' -print
Print out a list of all the files whose inode change time is more
recent than the current time minus one minute.
 
Danke Spire, für die schnelle Antwort. Leider werde ich nicht so recht schlau daraus. Deshalb bin ich auch mit meinem Paste-Problem noch nicht weitergekommen. Ich hätte vielleicht erwähnen sollen, dass ich eine einfache Textdatei bearbeiten will. Ein Teil meines Skripts sieht bis jetzt so aus:

Code:
tell application "TextWrangler"
	activate
	set _Frage to display dialog "Text eingeben:" default answer "" default button "OK"
	set _Antwort to text returned of _Frage
	find "& _Antwort" searching in text of text document 1 options {search mode:literal, starting at top:false, wrap around:false, backwards:false, case sensitive:false, match words:false, extend selection:false} with selecting match
end tell

Wenn ich nach einem festen Ausdruck suchen lasse funktioniert es. Nur mit der Variable eben nicht. Ich bin wie immer über jede, Anfänger-taugliche Hilfe dankbar.

Kai.
 
...

Hallo SelKai,

Ich dachte etwa so: find "& VariablenName"

Was soll das &?

find _Antwort ...

_Antwort heißt die Variable in Deinem Beispiel.

find "Präfix" & _Antwort & "Suffix" ...

Wenn die _Antwort "Test" ist würde das Skript nach "PräfixTestSuffix" suchen

Möchtest Du vielleicht ein Leerzeichen vorsetzen?

Dann müsste es so gehen:

find " " & _Antwort ...

Gruß Andi
 
Guten Morgen Andi,

Andi schrieb:
find _Antwort ...
Gruß Andi

Das hatte ich auch schon probiert, aber offensichtlich was falsch gemacht, denn jetzt funktioniert es. Vielen Dank auch für die anderen Beispiele!

Kai.
 
Hallo nochmal,

ich versuche nun eine Zeile von doc 1 einzulesen, um sie dann in doc 2 zu finden. Das habe ich so versucht:
Code:
tell application "TextWrangler"
	activate
	open datei 2
	open datei 1
	
	set _ErsteZeile to line 1 of document 1
		
	find _ErsteZeile searching in text of document 2 options {search mode:literal, starting at top:false, wrap around:true, backwards:false, case sensitive:false, match words:true, extend selection:false} with selecting match
	
end tell

Leider wird in doc2 irgendwas, nur nicht _ErsteZeile gefunden. Dabei scheint das so einfach zu sein ...

Danke schonmal im voraus. Kai.
 
...

Hallo SelKai,

find erwartet einen String.
Versuche mal

set _ErsteZeile to line 1 of document 1 as string

falls die erste Zeile als Liste interpretiert wird, da sie ja aus mehreren Wörtern besteht.

Ist document mit id 1 auch das richtige?

Im Skripteditor gibts das Event-Protokoll. Da sieht man schon, was wie in die Variablen geschrieben wird...

Gruß Andi
 
Hi Andi

der Tipp mit dem Event-Protokoll war gut. Es hatte sich ein Leerzeichen eingeschlichen, weshalb die Suche nicht erfolgreich sein konnte - dummer Fehler. Nun geht es auch ohne "as string".

Danke. Kai.
 
Zurück
Oben Unten