Variable übergeben - find

  1. SelKai

    SelKai Thread Starter MacUser Mitglied

    Mitglied seit:
    10.07.2005
    Beiträge:
    81
    Zustimmungen:
    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.
     
    SelKai, 04.09.2005
    #1
  2. Mitraix

    Mitraix

    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.
     
    Mitraix, 04.09.2005
    #2
  3. SelKai

    SelKai Thread Starter MacUser Mitglied

    Mitglied seit:
    10.07.2005
    Beiträge:
    81
    Zustimmungen:
    0
    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.
     
    SelKai, 04.09.2005
    #3
  4. Andi

    Andi MacUser Mitglied

    Mitglied seit:
    16.05.2002
    Beiträge:
    7.639
    Zustimmungen:
    770
    ...

    Hallo SelKai,

    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
     
    Andi, 04.09.2005
    #4
  5. SelKai

    SelKai Thread Starter MacUser Mitglied

    Mitglied seit:
    10.07.2005
    Beiträge:
    81
    Zustimmungen:
    0
    Guten Morgen 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.
     
    SelKai, 04.09.2005
    #5
  6. SelKai

    SelKai Thread Starter MacUser Mitglied

    Mitglied seit:
    10.07.2005
    Beiträge:
    81
    Zustimmungen:
    0
    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.
     
    SelKai, 04.09.2005
    #6
  7. Andi

    Andi MacUser Mitglied

    Mitglied seit:
    16.05.2002
    Beiträge:
    7.639
    Zustimmungen:
    770
    ...

    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
     
    Andi, 04.09.2005
    #7
  8. SelKai

    SelKai Thread Starter MacUser Mitglied

    Mitglied seit:
    10.07.2005
    Beiträge:
    81
    Zustimmungen:
    0
    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.
     
    SelKai, 04.09.2005
    #8
Die Seite wird geladen...
Ähnliche Themen - Variable übergeben find
  1. roedert
    Antworten:
    13
    Aufrufe:
    358
    roedert
    01.05.2017
  2. Sascha_77
    Antworten:
    0
    Aufrufe:
    222
    Sascha_77
    01.04.2017
  3. macfan
    Antworten:
    13
    Aufrufe:
    478
    Olivetti
    29.07.2016
  4. rolandfr
    Antworten:
    4
    Aufrufe:
    703
    rolandfr
    24.03.2015
  5. ego2k9
    Antworten:
    1
    Aufrufe:
    1.178
    Pill
    08.03.2014