Automator replace text, 1st occurrence only

using automator to rename audio files from a record date.
Not so much rename as name exchange.
The original files were wrongly named.
So what once was Audi L is now RF 3.
But there is also Mid Audi L that is also being changed.
Is there a way to limit the search to very specific text?

This will only replace text in a filename that starts with what you are searching for:
The Run Shell Script Action is:
for f in "$1"/*
do
     path=${f%/*}
     basename=${f##*/}
     nname=${basename/#$2/$3}
     if [ "$f" != "$path/$nname" ]; then
          mv "$f" "$path/$nname"
     fi
done
In  nname=${basename/#$2/$3}, the # is what determines that the search must start at the beginning of the filename

Similar Messages

  • Problem with GREP - finds only the 1st occurrence

    Hi all,
    In the example below, I am trying to find text between pairs of $ characters.
    Theoretically this should work — \$\s.+?\s\$ — but in practice it finds only the 1st occurrence. I can’t figure out why.
    Interestingly enough, in JS this expression works as expected.
    I select the text and run the script:
    Main();
    function Main() {
        var doc = app.activeDocument;
        var sel = app.selection[0];
        var contents = sel.contents;
        var match = contents.match(/\$\s.+?\s\$/g);
    And it returns all the four occurrences:
    What am I doing wrong?
    Thanks in advance.
    Kas

    Hi Kasyan
    In case your interested (probably not, but Jongware has a nice picture that's (maybe) worth seeing) here's a thread were Marc and I discussed how to find the first and last GREP occurrence in a paragraph / story and the use of the $ and ^ symbols.
    http://forums.adobe.com/message/4668083#4668083
    Regards
    Trevor

  • Replace Text script returns error when dropped in automator

    Hi Friends,
    I have a series of pdfs that were saved with spaces in their file names. I need to put them into folders for a website (there's a lot). Pretty newbie on this too but I figured I'd try.
    I tried using the example script "Replace Text in Item names" which worked on it's own.
    (hd:applications:applescript:example scripts:finder scripts)
    When I applied it as an action in Automator, I would get an error about "expected end but found on."
    I think that resulted from the default script. So I deleted that. Put the replace script in.
    I cut out the dialog boxes and specified folders, search, and replacement items. And cut out the second half (after the beep)
    However as I step through, when I get to the script it returns the error: No result was returned from some part of this expression.
    So I'm not sure what I'm missing.

    It is hard to tell without seeing the mangled modified script. Your main problem is probably related to the run handler, which needs to be defined in Automator's Run AppleScript action. Every AppleScript has a run handler, but in the case of the Replace Text in Item Names it is implied (not explicitly defined). You will need to place the main statements of the script inside the Run AppleScript action on run handler, leaving the other handlers (for example, setitemname) outside of the run handler.

  • Applescript: open Pages doc from Templete, change filename and replace text

    Hi!
    I just got started with applescript and i want a script that does the following:
    1. open "choose from list" dialog to choose the topic of my document
    from 4 possibilities (here for example A, B, C, D)
    2. open document from TemplateXY
    3. set document name with date and topic (dd.mm.yyy) "16.02.2011 - A"
    4.inside of document: replace text "date" with the currend date (dd.mm.yyy)
    and the text "topic" with the topic chosen in (1.) "A"
    this is what i already did:
    here as colored screenshot:
    http://i55.tinypic.com/2mnhxkm.jpg
    set datum to do shell script "date \"+%d.%m.%Y\""
    --choose topic:
    set chosentopic to choose from list {"A", "B", "C", "D"}
    --text "topic" becomes replaced throug variable topic
    set searchstringT to "topic"
    set replacestringT to chosentopic
    --text "date" gets replaced by currend date (variable datum)
    set searchstringD to "date"
    set replacestringD to datum
    --open pages, define filename & do search&replace of the strings defined above
    tell application "Pages"
    activate
    set DocName to datum & " - " & chosentopic
    set (every text where it is searchstringT) to replacestringT
    set (every text where it is searchstringD) to replacestringD
    end tell
    the "choose from list" dialog works and the variables like topic, datum and the search&replace strings get defined as well
    my problems are:
    i only get an error that the text could not be replaced
    i dont know how to get a new document from a template and how to get its filename changed
    i really just started doin things with applescript for a day so i hope you can help me
    regards
    DaNylz
    Message was edited by: DaNylz

    Try something like this:
    set myFoundItems to change text text of all page items of pages 3 thru 5 of document 1
    Shane Stanley <[email protected]>
    AppleScript Pro Sessions <http://scriptingmatters.com/aspro>

  • Replacing text in Text File in a perticuler line number

    Hi,
    I have a text file where values will be stored like
    user=alex;checkout=no;checkin=yes;
    user=rexy;checkout=yes;checkin=yes;
    user=nik;checkout=no;checkin=no;
    user=philip;checkout=yes;checkin=no;
    user=nex;checkout=yes;checkin=no;
    I know the line number of user nik(no=3) how can i replace that full line only with new values
    or a particular part (checkout=yes).According to each event i have to change a specific part in text file for that user .
    Thanks
    [email protected]

    Read the first two lines and write them to a new file. Write the new values for line 3 to that new file. Read the rest of the lines and write them to that new file. Close all the files, delete the old file, rename the new file.

  • Folder action to find and replace text and change line feeds

    I want to use a folder action to find and replace text and change Mac carriage returns to DOS line feeds inside text files.
    The text to be replaced is: "/Users/wim/Music/iTunes/iTunes Music/Music" (without the quotes)
    This text has to be removed (i.e. replaced by an empty string)
    The text occurs many times within each file.
    The files are playlists exported from iTunes in the M3U format (which are text files). They contain Mac carriage returns. These need to be changed to DOS line feeds.
    I have found the following two perl commands to achieve this:
    To find and replace text: perl -pi -w -e 's/THIS/THAT/g;' *.txt
    To change carriage returns to line feeds: perl -i -pe 's/\015/\015\012/g' mac-file
    I know that it's possible to make a folder action with Automator that executes a shell script.
    What I want to do is drop the exported playlists in M3U format in a folder so that the folder action will remove the right text and change the carriage returns.
    My questions are:
    Is it possible to make a folder action that executes command line commands instead of shell scripts?
    What is the correct syntax for the two commands when used in a folder action shell script? Especially, how do I escape the slashes (/) in the string to be removed?
    Thanks for your help

    Ok, I've include an applescript to run a shell command. The applesript command quoted form makes a string that will end up as a single string on the bash command line.  Depending on what you want to do, you may need multiple string on the bash command lines.  I've included some information on folder actions.
    It is easier to diagnose problems with debug information. I suggest adding log statements to your script to see what is going on.  Here is an example.
        Author: rccharles
        For testing, run in the Script Editor.
          1) Click on the Event Log tab to see the output from the log statement
          2) Click on Run
        For running shell commands see:
        http://developer.apple.com/mac/library/technotes/tn2002/tn2065.html
    on run
        -- Write a message into the event log.
        log "  --- Starting on " & ((current date) as string) & " --- "
        --  debug lines
        set desktopPath to (path to desktop) as string
        log "desktopPath = " & desktopPath
        set unixDesktopPath to POSIX path of desktopPath
        log "unixDesktopPath = " & unixDesktopPath
        set quotedUnixDesktopPath to quoted form of unixDesktopPath
        log "quoted form is " & quotedUnixDesktopPath
        try
            set fromUnix to do shell script "ls -l  " & quotedUnixDesktopPath
            display dialog "ls -l of " & quotedUnixDesktopPath & return & fromUnix
        on error errMsg
            log "ls -l error..." & errMsg
        end try
    end run
    How to set up a folder action.
    1) right click on folder. click on Enable folder actions
    2) Place script in
    /Library/Scripts/Folder Actions Scripts
    3) right click on folder. click on attach folder action
    pick your script.
    Create a new folder on the desktop & try.
    You can put multiple folder actions on a folder. There are other ways of doing this.
    Here is my test script:
    on adding folder items to this_folder after receiving dropped_items
        repeat with dropped_item_ref in dropped_items
           display dialog "dropped files is " & dropped_item_ref & " on folder " & this_folder
        end repeat
    end adding folder items to
    How to  make the text into an AppleScript program.
    Start the AppleScript Editor
    /Applications/AppleScript/Script Editor.app
    In Snow Leopard it's at: /Applications/Utilities/AppleScript Editor
    Copy the script text to the Applescript editor.
    Note: The ¬ is typed as option+return.  ption+return is the Applescript line continuation characters.
    You may need to retype these characters.
    Save the text to a file as an script and do not check any of the boxes below.

  • Replace text in photoshop document & save

    Hello,
    I have to make apprieciation certificates for a committee. Is there a way to use Automator to replace text within a photoshop document (people's names) and then save each name in a different file?
    Thanks!

    In theory, at least, this should be possible through an AppleScript which could be part of an Automator workflow, at least with Photoshop CS4 (I don't have earlier versions to check in their scriptability). The AppleScript suite for Photoshop CS4 has a text-object function that offers a lot of control over a given block of text, so it looks like it would be doable. You might want to take this up in the AppleScript forum or, probably better, in Adobe's own Photoshop forum.
    Regards.

  • Batch Rename: replace text option

    Batch rename is great if one wants to add text, change extension, add a serial number, metadata etc. BUT! what about replacing text? I've gotta jump from Bridge to Finder and an Automator workflow action to replace text in file names or just trim part of a file name. This doesn't make for a good workflow.
    Anybody else feel the frustration?

    Hello,
    I was trying this link to check out your solution and I can seem to get the link to work.
    http://photoshoptechniques.com/forum/showthread.php?t=28609
    Do you still have a solution to this problem? I would appreciate any help you could give. Thanks.

  • Wild cards in Replace text in File names

    Hi all,
    Is there a way to use wildcards in the Automator action to replace text in file names.
    Thanks
    Ro

    No - the *Rename Finder Items* action does not accept variables or wildcard characters. You can use a *Run Shell Script* action if you are familiar with that kind of thing, and I have an action that will replace a substring that is delimited by the specified text or numerical index, if that would work (it is available here).

  • Adding replacement text for acronyms using the SDK

    All
    I have an existing C++ plugin for Acrobat Pro that walks through documents page by page doing different things (e.g. changing annotations) on each page.
    As part of an effort to make out PDF files "accessible" I have an issue.
    One of things that I have been asked to do is to look at creating PDF "replacement text" for a list of acronyms as they occur in a document. I believe the optimal outcome would be to somehow make the acronyms as "marked-content" and created "replacement text" for the marked-content (The marked-content being an acronym).
    I have been looking at the core API, PDFEdit, and PDSEdit. It looks like PDFEdit would be the set of tools that might be able to do this, but I don't think it will. It doesn't seem like there is a way to "mark content" using PDFEdit. If I was able to cerate the correct marked content, it looks like the there isn't a way to add "replacement text" for that marked content.
    We are creating structured PDF files, so I looked at PDSEdit. It appears that it pretty easy to created alternate text for an element. However, the elements are usually entire paragraphs so I would have to create "alternate text" for the entire paragraph just to have replacement for an acronym in the paragraph.
    Playing with the "content streams" is something new to me, so I am wondering if it looks like I have considered all of the options?
    Thanks

    Leonard
    Looking at PDSEdit, it appears that I have to create replacement text for entire element. Our elements are entire paragraphs for the most part. I was thinking that I couldn't just provide replacement text for a single word in the paragraph and I would have to provide replacement text for the entire paragraph since there is only 1 replacement text per element.
    Maybe I didn't think about this enough (I shouldn't be allowed to talk out loud on Fridays). If I could split an existing element into 3 elements (before acronym, acronym, after acronym), I could avoid building replacement text for the entire paragraph. Or maybe I can created marked content with PDSEdit as a separate structure element? Not sure I can do that.
    Do you think I can do what I want to do with PDSEdit?
    I guess I am struggling a little to understand how the content streams relate to the items in the basic PDF structure (e.g. replacement text for marked content) and the document structure.
    Sorry about rambling..
    Thanks

  • Batch replacing text (doing translation) in 50+ pretty much identical documents?

    Can I batch replace text for several pdfs when translating 50+ identical documents? Only certain values/numbers differ in each document.
    I am new to Acrobat, and I am currently just copying and pasting between my first translation of a document and the ones I have not translated yet.

    No, and you shouldn't attempt to translate a PDF file directly. This type
    of task should be done on the original file format and then a new PDF file
    should be created.
    On Tue, Mar 3, 2015 at 3:33 PM, josteinb80906302 <[email protected]>

  • Use VBA and Excel to open Dreamweaver HTML (CS5), find and replace text, save and close

    I wish to use VBA and Excel to programmatically open numbered Dreamweaver HTML (CS5) and find and replace text in the code view of these files, save and close them.
    I have  5000 associations between Find: x0001 and Replace: y0001 in an Excel sheet.
    I have the VBA written but do not know how to open, close and save the code view of the ####.html files. Please ... and thank you...
    [email protected]

    This is actually the code view of file ####.html that I wish to find and replace programmatically where #### is a four digit number cataloguing each painting.... In 1995 I thought this was clever... maybe not so clever now :>)) Thank you for whatever you can do Rob!
    !####.jpg!
    h2. "Name####"
    Oils on acrylic foundation commercial canvas - . xx X xx (inches) Started
    Back of the Painting In Progress </p> </body> </html>
    Warmest regards,
    Phil the Forecaster, http://philtheforecaster.blogspot.ca/ and http://phils-market.blogspot.ca/

  • Trouble with "add note to replace text" annotation

    When I use "Add note to replace text" in Reader XI, the note acts as if it is locked even though it is not. The Locked box is not checked, but yet the options are grayed out; and I cannot delete the note, though I can edit the text box. "Strikethrough" and "Insert text at cursor" work fine.
    I am using the latest update of XI and have uninstalled and reinstalled it several times; I've also tried various older versions of XI. It happens with documents I've created or documents others have created; it happens on docs created from Word or those created from InDesign; it happens on docs downloaded several years ago as well as ones from the past month.
    I CAN delete these add-and-replace notes if I receive a file with them already put there by someone else--I just can't delete my own that I am adding right now. When I send the pdf to other people they have the same problem--in fact, someone told me that in her case ALL of my notes appear locked, not just the Add note to replace text one--yet when I send it to her, on my side, I have not locked any of them.
    Also, I do seem to be able to delete my own annotations I put on documents fairly recently--I have files from Sept 9 and Sept 17 that I can do this. But if I try to add notes to those same docs now, they act just like all the other ones--I cannot delete those particular notes and they appear locked.
    Help please!!

    You could write an html-text file that revers to the image file
    after that you could even convert this html-file to an rtfd file (which is a package after all) using textutil

  • Find and Replace text string in HTML

    Opps... I hope this forum is not just for Outlook. My Html files reside on my hard-drive. I am looking for VBA code to open specified file names ####File.html and then find and replace text strings within the html for example "####Name" replaced
    with "YYYYY"
    I drive the "####File.html" names and the find and replace text strings from an Excel sheet. I am an artist and this Sub would give me time to paint instead of find and replace text. Thank you!
    [email protected]

    Hello Phil,
    The current forum is for developers and Outlook related programming questions. That's why I'd suggest hiring anybody for developing the code for you. You may find freelancers, for example. Try googling for any freelance-related web sites and asking such
    questions there.
    If you decide to develop an Outlook macro on your own, the
    Getting Started with VBA in Outlook 2010 article is a good place to start from.

  • Find and replace text in multiple Photoshop files?

    Hi there,
    Let us say I have six Photoshop files: 1.psd, 2.psd, ..., 6.psd. All of these files contain the word “LoremIpsum” in random text layers, within each document. Is there a way I can search for “LoremIpsum” in all documents and replace it with “Dolor Sit Amet”, all in one go? This is just an example, I need to replace various words, not just one.
    I have tried "batch find and replace" software (including powerful tools like Power Grep) but they do not work with psd files… Is there a javascript of external plugin for this kind of task?
    Thanks!

    You’re welcome, advice given here is free.
    If you want to donate something nonetheless you could do so over at
    http://ps-scripts.com/bb/
    Many of the same people used to contribute there as here and I for one have benefitted considerably from their generous advice on Scripting issues.
    A Script can read (or create) txt files, but I do not have a lot of experience with this.
    This might work (amend the line »var theTexts = readPref ("….txt", false);« according to your txt-file’s path):
    // replace text elements in type layers;
    // 2013, use it at your own risk;
    #target photoshop
    if (app.documents.length > 0) {
              for (var n = 0; n < app.documents.length; n++) {
                        app.activeDocument = app.documents[n];
                        app.activeDocument.suspendHistory("replace text", "main()")
    // the opertation;
    function main () {
              var myDocument = app.activeDocument;
              var theTexts = readPref ("….txt", false);
              var theArray1 = theTexts.slice(0, Math.round(theTexts.length/2));
              var theArray2 = theTexts.slice(Math.round(theTexts.length/2), theTexts.length);
              alert (theArray1.join("\n")+"\n\n\n"+theArray2.join("\n"))
              for (var b = 0; b < theArray1.length; b++) {
                        replaceText (theArray1[b], theArray2[b])
    ////// reoplace text //////
    function replaceText (replaceThis, replaceWith) {
    // =======================================================
    var idreplace = stringIDToTypeID( "replace" );
        var desc22 = new ActionDescriptor();
        var idnull = charIDToTypeID( "null" );
            var ref3 = new ActionReference();
            var idPrpr = charIDToTypeID( "Prpr" );
            var idreplace = stringIDToTypeID( "replace" );
            ref3.putProperty( idPrpr, idreplace );
            var idTxLr = charIDToTypeID( "TxLr" );
            var idOrdn = charIDToTypeID( "Ordn" );
            var idAl = charIDToTypeID( "Al  " );
            ref3.putEnumerated( idTxLr, idOrdn, idAl );
        desc22.putReference( idnull, ref3 );
        var idUsng = charIDToTypeID( "Usng" );
            var desc23 = new ActionDescriptor();
            var idfind = stringIDToTypeID( "find" );
            desc23.putString( idfind, replaceThis );
            var idreplace = stringIDToTypeID( "replace" );
            desc23.putString( idreplace, replaceWith );
            var idcheckAll = stringIDToTypeID( "checkAll" );
            desc23.putBoolean( idcheckAll, true );
            var idFwd = charIDToTypeID( "Fwd " );
            desc23.putBoolean( idFwd, true );
            var idcaseSensitive = stringIDToTypeID( "caseSensitive" );
            desc23.putBoolean( idcaseSensitive, false );
            var idwholeWord = stringIDToTypeID( "wholeWord" );
            desc23.putBoolean( idwholeWord, false );
            var idignoreAccents = stringIDToTypeID( "ignoreAccents" );
            desc23.putBoolean( idignoreAccents, true );
        var idfindReplace = stringIDToTypeID( "findReplace" );
        desc22.putObject( idUsng, idfindReplace, desc23 );
    executeAction( idreplace, desc22, DialogModes.NO );
    ////// read prefs file //////
    function readPref (thePath, binary) {
      if (File(thePath).exists == true) {
        var file = File(thePath);
        file.open("r");
        if (binary == true) {file.encoding= 'BINARY'};
        var theText = file.read();
        file.close();
        return String(theText).split(",")
    In this case the comma is used to split the text into Strings in Arrays, if your search/replace texts include commas you could use something else, I guess.

Maybe you are looking for

  • How do you HYPERLINK a web page address to an EXCEL document in Firefox like is possible in Explorer

    How do you HYPERLINK a web page address to an EXCEL document in Firefox like is possible in Explorer?

  • Hard Drive Crash - Trying to restore info

    Hello all, About a year ago, my Powerbook G4 suffered a hard drive failure, and every bit of information was lost in no-man's land because I did not have anything backed up (trust me, I've learned my lesson). I was referred to DriveSavers, and after

  • Payment api issue on MIDlet Application

    Hi All, I am having an existing MIDlet application in which I want to implement payment api. I have followed all the guidlines provided by BB team. I have even done a sample application for payment api using UiApplication which is working fine, now w

  • Put html tag in xml genreted with strings panel

    Hello, I created an multilanguage application with the "strings "panel. My customer need to put some words in italic inside the dynamic textfield. So I used <i> tag or cdata tag insied the xml, but nothing works, even if I put the textfield in "html"

  • Conditions in APD

    Hello All, Is it possible to use conditons in a query to be used in the APD process? We are on BW version 3.1 and are trying to use the APD process but it seems as if the conditions are not used when we do our extraction using the APD process. Many T