Find Replace from Textfile with regex

Hello.
I'm wondering if anyone knows about an existing script that does a find/replace by list like the script "FindChangeByList.jsx" that comes with every InDesign installation.
This consists of tow parts, the script itself with the functionality and a simple textfile where you have simple one-liners capable of find/replace with regex.
the Textfile:
//FindChangeList.txt
//A support file for the InDesign CS4 JavaScript FindChangeByList.jsx
//This data file is tab-delimited, with carriage returns separating records.
//The format of each record in the file is:
//findType<tab>findProperties<tab>changeProperties<tab>findChangeOptions<tab>description
//Where:
//<tab> is a tab character
//findType is "text", "grep", or "glyph" (this sets the type of find/change operation to use).
//findProperties is a properties record (as text) of the find preferences.
//changeProperties is a properties record (as text) of the change preferences.
//findChangeOptions is a properties record (as text) of the find/change options.
//description is a description of the find/change operation
//Very simple example:
//text          {findWhat:"--"}          {changeTo:"^_"}          {includeFootnotes:true, includeMasterPages:true, includeHiddenLayers:true, wholeWord:false}          Find all double dashes and replace with an em dash.
//More complex example:
//text          {findWhat:"^9^9.^9^9"}          {appliedCharacterStyle:"price"}          {include footnotes:true, include master pages:true, include hidden layers:true, whole word:false}          Find $10.00 to $99.99 and apply the character style "price".
//All InDesign search metacharacters are allowed in the "findWhat" and "changeTo" properties for findTextPreferences and changeTextPreferences.
//If you enter backslashes in the findWhat property of the findGrepPreferences object, they must be "escaped"
//as shown in the example below:
//{findWhat:"\\s+"}
grep          {findWhat:"  +"}          {changeTo:" "}          {includeFootnotes:true, includeMasterPages:true, includeHiddenLayers:true, wholeWord:false}          Find all double spaces and replace with single spaces.
grep          {findWhat:"\r "}          {changeTo:"\r"}          {includeFootnotes:true, includeMasterPages:true, includeHiddenLayers:true, wholeWord:false}          Find all returns followed by a space And replace with single returns.
grep          {findWhat:" \r"}          {changeTo:"\r"}          {includeFootnotes:true, includeMasterPages:true, includeHiddenLayers:true, wholeWord:false}          Find all returns followed by a space and replace with single returns.
grep          {findWhat:"\t\t+"}          {changeTo:"\t"}          {includeFootnotes:true, includeMasterPages:true, includeHiddenLayers:true, wholeWord:false}          Find all double tab characters and replace with single tab characters.
grep          {findWhat:"\r\t"}          {changeTo:"\r"}          {includeFootnotes:true, includeMasterPages:true, includeHiddenLayers:true, wholeWord:false}          Find all returns followed by a tab character and replace with single returns.
grep          {findWhat:"\t\r"}          {changeTo:"\r"}          {includeFootnotes:true, includeMasterPages:true, includeHiddenLayers:true, wholeWord:false}          Find all returns followed by a tab character and replace with single returns.
grep          {findWhat:"\r\r+"}          {changeTo:"\r"}          {includeFootnotes:true, includeMasterPages:true, includeHiddenLayers:true, wholeWord:false}          Find all double returns and replace with single returns.
text          {findWhat:" - "}          {changeTo:"^="}          {includeFootnotes:true, includeMasterPages:true, includeHiddenLayers:true, wholeWord:false}          Find all space-dash-space and replace with an en dash.
text          {findWhat:"--"}          {changeTo:"^_"}          {includeFootnotes:true, includeMasterPages:true, includeHiddenLayers:true, wholeWord:false}          Find all dash-dash and replace with an em dash.
The script:
//FindChangeByList.jsx
//An InDesign CS5.5 JavaScript
@@@BUILDINFO@@@ "FindChangeByList.jsx" 3.0.0 15 December 2009
//Loads a series of tab-delimited strings from a text file, then performs a series
//of find/change operations based on the strings read from the file.
//The data file is tab-delimited, with carriage returns separating records.
//The format of each record in the file is:
//findType<tab>findProperties<tab>changeProperties<tab>findChangeOptions<tab>description
//Where:
//<tab> is a tab character
//findType is "text", "grep", or "glyph" (this sets the type of find/change operation to use).
//findProperties is a properties record (as text) of the find preferences.
//changeProperties is a properties record (as text) of the change preferences.
//findChangeOptions is a properties record (as text) of the find/change options.
//description is a description of the find/change operation
//Very simple example:
//text          {findWhat:"--"}          {changeTo:"^_"}          {includeFootnotes:true, includeMasterPages:true, includeHiddenLayers:true, wholeWord:false}          Find all double dashes and replace with an em dash.
//More complex example:
//text          {findWhat:"^9^9.^9^9"}          {appliedCharacterStyle:"price"}          {include footnotes:true, include master pages:true, include hidden layers:true, whole word:false}          Find $10.00 to $99.99 and apply the character style "price".
//All InDesign search metacharacters are allowed in the "findWhat" and "changeTo" properties for findTextPreferences and changeTextPreferences.
//If you enter backslashes in the findWhat property of the findGrepPreferences object, they must be "escaped"
//as shown in the example below:
//{findWhat:"\\s+"}
//For more on InDesign scripting, go to http://www.adobe.com/products/indesign/scripting/index.html
//or visit the InDesign Scripting User to User forum at http://www.adobeforums.com
main();
function main(){
          var myObject;
          //Make certain that user interaction (display of dialogs, etc.) is turned on.
          app.scriptPreferences.userInteractionLevel = UserInteractionLevels.interactWithAll;
          if(app.documents.length > 0){
                    if(app.selection.length > 0){
                              switch(app.selection[0].constructor.name){
                                        case "InsertionPoint":
                                        case "Character":
                                        case "Word":
                                        case "TextStyleRange":
                                        case "Line":
                                        case "Paragraph":
                                        case "TextColumn":
                                        case "Text":
                                        case "Cell":
                                        case "Column":
                                        case "Row":
                                        case "Table":
                                                  myDisplayDialog();
                                                  break;
                                        default:
                                                  //Something was selected, but it wasn't a text object, so search the document.
                                                  myFindChangeByList(app.documents.item(0));
                    else{
                              //Nothing was selected, so simply search the document.
                              myFindChangeByList(app.documents.item(0));
          else{
                    alert("No documents are open. Please open a document and try again.");
function myDisplayDialog(){
          var myObject;
          var myDialog = app.dialogs.add({name:"FindChangeByList"});
          with(myDialog.dialogColumns.add()){
                    with(dialogRows.add()){
                              with(dialogColumns.add()){
                                        staticTexts.add({staticLabel:"Search Range:"});
                              var myRangeButtons = radiobuttonGroups.add();
                              with(myRangeButtons){
                                        radiobuttonControls.add({staticLabel:"Document", checkedState:true});
                                        radiobuttonControls.add({staticLabel:"Selected Story"});
                                        if(app.selection[0].contents != ""){
                                                  radiobuttonControls.add({staticLabel:"Selection", checkedState:true});
          var myResult = myDialog.show();
          if(myResult == true){
                    switch(myRangeButtons.selectedButton){
                              case 0:
                                        myObject = app.documents.item(0);
                                        break;
                              case 1:
                                        myObject = app.selection[0].parentStory;
                                        break;
                              case 2:
                                        myObject = app.selection[0];
                                        break;
                    myDialog.destroy();
                    myFindChangeByList(myObject);
          else{
                    myDialog.destroy();
function myFindChangeByList(myObject){
          var myScriptFileName, myFindChangeFile, myFindChangeFileName, myScriptFile, myResult;
          var myFindChangeArray, myFindPreferences, myChangePreferences, myFindLimit, myStory;
          var myStartCharacter, myEndCharacter;
          var myFindChangeFile = myFindFile("/FindChangeSupport/FindChangeList.txt")
          if(myFindChangeFile != null){
                    myFindChangeFile = File(myFindChangeFile);
                    var myResult = myFindChangeFile.open("r", undefined, undefined);
                    if(myResult == true){
                              //Loop through the find/change operations.
                              do{
                                        myLine = myFindChangeFile.readln();
                                        //Ignore comment lines and blank lines.
                                        if((myLine.substring(0,4)=="text")||(myLine.substring(0,4)=="grep")|| (myLine.substring(0,5)=="glyph")){
                                                  myFindChangeArray = myLine.split("\t");
                                                  //The first field in the line is the findType string.
                                                  myFindType = myFindChangeArray[0];
                                                  //The second field in the line is the FindPreferences string.
                                                  myFindPreferences = myFindChangeArray[1];
                                                  //The second field in the line is the ChangePreferences string.
                                                  myChangePreferences = myFindChangeArray[2];
                                                  //The fourth field is the range--used only by text find/change.
                                                  myFindChangeOptions = myFindChangeArray[3];
                                                  switch(myFindType){
                                                            case "text":
                                                                      myFindText(myObject, myFindPreferences, myChangePreferences, myFindChangeOptions);
                                                                      break;
                                                            case "grep":
                                                                      myFindGrep(myObject, myFindPreferences, myChangePreferences, myFindChangeOptions);
                                                                      break;
                                                            case "glyph":
                                                                      myFindGlyph(myObject, myFindPreferences, myChangePreferences, myFindChangeOptions);
                                                                      break;
                              } while(myFindChangeFile.eof == false);
                              myFindChangeFile.close();
function myFindText(myObject, myFindPreferences, myChangePreferences, myFindChangeOptions){
          //Reset the find/change preferences before each search.
          app.changeTextPreferences = NothingEnum.nothing;
          app.findTextPreferences = NothingEnum.nothing;
          var myString = "app.findTextPreferences.properties = "+ myFindPreferences + ";";
          myString += "app.changeTextPreferences.properties = " + myChangePreferences + ";";
          myString += "app.findChangeTextOptions.properties = " + myFindChangeOptions + ";";
          app.doScript(myString, ScriptLanguage.javascript);
          myFoundItems = myObject.changeText();
          //Reset the find/change preferences after each search.
          app.changeTextPreferences = NothingEnum.nothing;
          app.findTextPreferences = NothingEnum.nothing;
function myFindGrep(myObject, myFindPreferences, myChangePreferences, myFindChangeOptions){
          //Reset the find/change grep preferences before each search.
          app.changeGrepPreferences = NothingEnum.nothing;
          app.findGrepPreferences = NothingEnum.nothing;
          var myString = "app.findGrepPreferences.properties = "+ myFindPreferences + ";";
          myString += "app.changeGrepPreferences.properties = " + myChangePreferences + ";";
          myString += "app.findChangeGrepOptions.properties = " + myFindChangeOptions + ";";
          app.doScript(myString, ScriptLanguage.javascript);
          var myFoundItems = myObject.changeGrep();
          //Reset the find/change grep preferences after each search.
          app.changeGrepPreferences = NothingEnum.nothing;
          app.findGrepPreferences = NothingEnum.nothing;
function myFindGlyph(myObject, myFindPreferences, myChangePreferences, myFindChangeOptions){
          //Reset the find/change glyph preferences before each search.
          app.changeGlyphPreferences = NothingEnum.nothing;
          app.findGlyphPreferences = NothingEnum.nothing;
          var myString = "app.findGlyphPreferences.properties = "+ myFindPreferences + ";";
          myString += "app.changeGlyphPreferences.properties = " + myChangePreferences + ";";
          myString += "app.findChangeGlyphOptions.properties = " + myFindChangeOptions + ";";
          app.doScript(myString, ScriptLanguage.javascript);
          var myFoundItems = myObject.changeGlyph();
          //Reset the find/change glyph preferences after each search.
          app.changeGlyphPreferences = NothingEnum.nothing;
          app.findGlyphPreferences = NothingEnum.nothing;
function myFindFile(myFilePath){
          var myScriptFile = myGetScriptPath();
          var myScriptFile = File(myScriptFile);
          var myScriptFolder = myScriptFile.path;
          myFilePath = myScriptFolder + myFilePath;
          if(File(myFilePath).exists == false){
                    //Display a dialog.
                    myFilePath = File.openDialog("Choose the file containing your find/change list");
          return myFilePath;
function myGetScriptPath(){
          try{
                    myFile = app.activeScript;
          catch(myError){
                    myFile = myError.fileName;
          return myFile;
This is a very useful and easy to maintain script which even people who cant write scripts (but know how to use regex) can do complex search replace mass replacements.
Would love to find something like this for FrameMaker 12 (as i can't write scripts myself).
regards
daniel

I have visited that site. The first item in the external link says: "You can also configure Firefox to automatically search for text when you type any characters outside of a text field. When typing in a text field these characters should show up in the text field and not trigger the Quick Find bar. "
What I am looking for is the exact opposite. Once my first search is entered in the text box, and the info comes back, I want to start typing the next symbol, and have it automatically show up in the text box, not the Quick Find box. That is how it was working up until a couple of months ago.

Similar Messages

  • Trying to find replacement mouse/ trouble with existing mouse

    The mouse that came with my HP bundle has finally decided to crap out on me. I will click something like a box that can be checkmarked and with one click it will check it and uncheck it. Also when using the calculator I could hit one digit and it will enter that # twice. So I'm thinking my mouse has about had it.
    Not sure if much I can do to clean it. I'd like to stay away from compressed air. I tried using the vacuum to suck up some of the dust. But not sure how much that did, since I'm still having issues. Also tried sliding the sticky side of a post it note in the cracks to gather up some dust. Little results. 
    Onto the next thing on what replacement I found. 
    On the back I have found it be Model # N910U, but trying to search the HP site all I can find similar is this one, looks exactly like mine, but not finding it to be the same model #. 
    http://www.shopping.hp.com/en_US/home-office/-/products/Accessories/Mice-and-Keyboards/KY619AA?HP-US...
    Is this the same item or what? 

    mws1984,
    Your mouse is a corded optical mouse, any such mouse mouse will work, including the one you linked.
    PS> the shipping on that mouse is $10. It's such a trivial item, your local stores will have many selections.
    I am a volunteer. I am not an HP employee.
    To say THANK YOU, press the "thumbs up symbol" to render a KUDO. Please click Accept as Solution, if your problem is solved. You can render both Solution and KUDO.
    The Law of Effect states that positive reinforcement increases the probability of a behavior being repeated. (B.F.Skinner). You toss me KUDO and/or Solution, and I perform better.
    (2) HP DV7t i7 3160QM 2.3Ghz 8GB
    HP m9200t E8400,Win7 Pro 32 bit. 4GB RAM, ASUS 550Ti 2GB, Rosewill 630W. 1T HD SATA 3Gb/s
    Custom Asus P8P67, I7-2600k, 16GB RAM, WIN7 Pro 64bit, EVGA GTX660 2GB, 750W OCZ, 1T HD SATA 6Gb/s
    Custom Asus P8Z77, I7-3770k, 16GB RAM, WIN7 Pro 64bit, EVGA GTX670 2GB, 750W OCZ, 1T HD SATA 6Gb/s
    Both Customs use Rosewill Blackhawk case.
    Printer -- HP OfficeJet Pro 8600 Plus

  • JS: Finding & replacing a character with a certain para style

    I'm scripting an automated indd -> PDF project and I need to minimise the user input.
    To this end, I want to search and replace commas in a particular cell of a table (which are the only instances of a particular para style), and replace them with forced line breaks.
    The script I have for another part of the XML import looks like this:
    //Search the document for the umlauts and replaces them with macrons. I
    app.findTextPreferences.findWhat = "Ï";
    app.changeTextPreferences.changeTo = "Ī";
    myDocument.changeText();
    What do I add to a similar script to make it target only content whish has a particular para style? And will it be compatible with CS4, 5 and 5.5, i.e. be agnostic to nested styles etc?
    Thanks in advance,
    Simon.

    Use app.findTextPreferences.appliedParagraphStyle:
    app.findTextPreferences.appliedParagraphStyle = "my_style";
    .. your snippet here ..
    I bet there is a reset somewhere above your snippet:
    app.findTextPreferences = null;
    app.changeTextPreferences = null;
    and it would be safest to insert this as well below your code, or else this particular setting will "stick" and also be applied to following replaces.
    This command is virtually unchanged since CS3, CS4? So far it seems to work in every version since then. But either way it's inconsequential to your nested styles, as these can only be character styles.

  • Bonjour not finding anything from PC with Multiple NICs

    We have two Network Interface Cards in each workstation at work to access two separate Physical Networks. Both networks provide access to ZeroConf (Bonjour) IP Printers.
    Bonjour discovery fails intermittently on the two different networks. Occasionally Printers on one network, the other network, both or neither are visible from various workstations.
    Is mDNSResponder aware of multiple NICs? Is there a way to force mDNSResponder to only search for printers on a particular subnet?

    The second  network adapter was installed after the VPC, indeed.
    In the dropdown menu in the VPC networking settings there was only one network adapter to chose because the description for both physical network cards were the same. Therefore I cannot assign for virtual NICs different physical network adapters.
    Finally I coped with the problem:
    - I uninstalled one of the adapters (removing the drivers, too),
    - edited the INF file in the adapter drivers and changed the description of the adapter
    - I reinstalled the adapter with the altered driver (with the INF file changed).
    Then, in the VPC networking settings both physical adapters appeared (one with the altered description).
    I Wonder if that will cause any problems later ;)
    Thanks for your replies :)

  • Finder: replace a file with another file

    Let's say I want a game to play my favorite song when the game is supposed to be playing its own theme song.  The theme song is in a sound file that is located on my computer's hard drive.  The theme song sound file is in the same format as the sound file that contains my favorite song, so I don't need to convert any files.  What is the easiest way to make the game think that the sound file I want the game to use is the sound file of the theme song?

    You could hack the software and change the code to use some other file, but that will not be easier.
    Either change the code or change the target. Unless the game provides a preference to change the sound, there isn’t another option.

  • Difference between Replacement with a query and Replacement from Variable

    Hi Gurus
    Would explain the difference between the Replacement Path: Replacement with a query and Replacement Path: Replacement from Variable with scenarios.
    Thanks in advance,
    Aravind.S

    Hi,
    If you are using Replacement with query, the given query output will be used as input your variable. For example if you want to display the product details, which can be find our from a query.
    And Replacement with Variable will be used  when you want to give the same input  in two different fields. for example if you want to see the records from sending location and not the records from recived location at the same time. Here once you give the sending location id, it will be taken as the same input for received location.
    Regards,
    Vishnu

  • Find & Replace

    I'm trying to get DW 8 to allow me to remove some of the
    "found" items before using the replace function to avoid having to
    open each file individually - but when I delete entries from the
    "found" list, on r-click I'm given 3 options:
    - Open File
    - Find & Replace
    - Clear Results
    The Find & Replace option takes me back to the original
    Find & Replace screen. With DW4 you have the option of deleting
    some of the "found" entries before pressing the "replace" button.
    Has DW really taken a backward step?

    I neevr used DW4, so I'm not certain how that worked. And it
    doesn't look like you can delete entries from the Search panel.
    You might use other techniques to limit your changes. Any
    folders or files that are cloaked will not be updated by the
    Replace. You can set cloaking for specific files or folders, or by
    file extension (on the Site panel). Or, you could select only the
    files you want to target and use the Selected Files in Site option
    of the Find In drop-down. Or, you could use the Replace button in
    the Find/Replace panel to go through the results one at a time,
    rather than using Replace All.
    If you are changing HTML tags or attributes, the Find/Replace
    options are very powerful.

  • Find/Replace - multiple replace ... maybe with regex

    Hello Dreamweaver community ... I'm relatively new to using Dreamweaver as an editor and I'm working on a large migration project that I'm trying to make easier. Basically, I'm converting an entire site from English to Spanish ... almost literally tag by tag
    Something that would make my job a lot easier is if ... every time I open a new Spanish language content file I could ...
    replace ALL Spanish language grammar symbols, accents, tildes etc ... with their HTML equivalents ... for example ...
    á  = &aacute;
    é = &eacute;
    í = &iacute;
    And so on ... there's about 10-12 major changes ...
    What I need to figure out is how to save a find/replace query in Dreamweaver .dwr format that replaces all symbols at once instead of needing to do them one at a time ...
    Seems like this shoudl be possible but I haven't figured out the right syntax ... I used the (.+) and $1 but it only worked conditionally - in the order the replacements were written. I need it to find ALL instances of a spanish symbol and replace it with its corresponding html ...
    Can anyone help me with this ...?
    Thank you in advance ...

    This is in fact the only solution I found to this problem.
    Creating an extension is not that difficult once you have the right
    reference material.
    Have a look at:
    DW API function to find and replace
    http://livedocs.adobe.com/en_US/Dreamweaver/9.0_API/dwr_code_cd_013.html
    Sample extension file on your machine after installing DW
    C:\Program Files\Adobe\Adobe Extension
    Manager\Samples\Dreamweaver\
    Full specifications of the MXI (extension file) format
    http://download.macromedia.com/pub/exchange/mxi_file_format.pdf
    quote:
    Originally posted by:
    Newsgroup User
    > So, is it indeed possible to run more than one
    find/replace query at a
    > time?
    As far as i know, no it's not possible.
    There has been mentions in the past to this question that a
    series of
    find/replace queries could be built as a dw extension instead
    of a saved
    search query.
    Alan
    Adobe Community Expert, dreamweaver

  • I can't find the tutorial on replacing a person with another image from a different photo.

    I got an email with a link to a video a long time ago that showed how to remove a person from a group photo and replace this person with an image of them from another photo.  It does not seem to be in the videos on my Phtotshop elements 9 list within the program.  Does anyone have a link to this video so I can save it and rewatch it?  Thanks

      Click on the link below and go to: Easily Create the Perfect Photo
    It’s designed for several people but it should work with just one person in the shot. After viewing the tutorial open both images in Full Edit and go to:
    File >> New >> Photomerge Group Shot
    http://www.adobe.com/products/photoshop-premiere-elements/features.edu.html?promoid=GYSZM

  • [AS] CS3- Find any text with style, then replace that text with a new applied fill color.

    I am trying to find the simplest way in cs3 to find any text with style, then replace that text with a new fill color. I can find text and change text. I can find a style and change it to a new style. I can't seem to find a style and change the applied fill color. I do not want to change the properties of the style, just the applied color. Yes, I want the + sign, for now. I know, why not update the style, I am not allowed to. Any help would be great. Since the search is not available, I need a new response.
    Thanks.

    You can work around the bug by just doing a find, then looping through the<br />results, changing the color one at a time. It'll be a fraction slower, but<br />should do the trick:<br /><br />tell application "Adobe InDesign CS3"<br />    set find text preferences to nothing<br />    set properties of find text preferences to {applied paragraph style:"The<br />name"}<br />    set theFinds to find text document 1<br />    repeat with i from 1 to count of theFinds<br />        set properties of item i of theFinds to {fill color:"Replace color"}<br />    end repeat<br />end tell<br /><br />The bug is fixed in CS4, BTW.<br /><br />-- <br />Shane Stanley <[email protected]><br />AppleScript Pro Florida, April 2009 <a href=http://scriptingmatters.com/aspro>

  • Quck Find/Replace doesn't work with Oracle Db Proj (ODT 11.1.0.5.10 beta)

    There seems to be a bug with the Oracle Database Project that prevents Quick Find and Quick Replace from working. To recreate, just open the new Oracle Database Project, open a sql script, ctrl-F, search for a text string. The text will not be found.

    I guess the work around (not so ideal) is to use Find in Files (shift/ctrl-F) and Replace in Files (shift/ctrl-H).

  • Can I replace x230T lcd with a full hd lcd from Thinkpad Yoga or x240?

    Hello.As i mentioned in the title i intend to replace my lcd/digitizer if possible.I want to know if this operation can be performed somehow.I want to replace the hd 1366x768 res,so for example the TPY`s lcd/digitizer with FHD would be perfect.From what i observed on ebay,some lcd suppliers offer this kind of LCD(i don`t know if it is an original item or not) and on the description says it`s 30 pin conectors,others 40 pins ......As far as i know x230t lcd is based on 40 pin conector .Teoreticaly if i find a 40 pin TPY lcd/digitizer it should work fine ,isn`t it!?
    Hope to hear you opinions as i`m not very skilful in these type of things and i wouldn`t risk my money and my laptop health if i`m not sure that is truly possible and risk free.
    Kind regards,

    Hi,
    that's impossible to replace x230t screen with ones you've mentioned w/o hard work. The trouble isn't the connector type. x230s uses LVDS signaling for the internal screen, TPY or, for example, x240 (nice screen too) - eDP.
    To be clear, x230 has eDP port too, but it's routed to the docking station connector.
    In theory, it's possible to connect eDP matrice. For example, via signal converter. But where will you place that unit (pcb with chips) inside of the laptop?
    x220 | i5-2520m | Intel ssd 320 series | Gobi 2000 3G GPS | WiFi
    x220 | i5-2520m | hdd 320 | Intel msata ssd 310 series | 3G GPS | WiFi
    Do it well, worse becomes itself
    Русскоязычное Сообщество   English Community   Deutsche Community   Comunidad en Español

  • Find/Replace text in one Doc based on List from another Doc

    I'm not sure Automator can do this so I thought I would ask before spending too much time on it. I have searched the forums and several of the Automator tutorial websites.
    What I want to do is take one text file (or it could be an Excel file, I don't care) with a list of words to Find in a folder full of files.
    For example I have this list in a txt file:
    Big Dog
    Furry Cat
    Bird
    Fox
    I would want the action to search every document for every occurrence of 'Big Dog', then search for every occurrence of 'Furry Cat', etc. I would also want to replace each instance with something else, say a formatted html link.
    Is something like that even possible with Automator? I am on Snow Leopard but I didn't see a forum for Automator on SL. Thanks in advance for any help/advice.

    Asked and responded here:
    http://discussions.apple.com/thread.jspa?messageID=8367522
    Yvan KOENIG (from FRANCE vendredi 14 novembre 2008 14:22:47)

  • Am replacing airport extreme with Time Machine and want to upgrade from Tiger to Snow leopard. Am told I should manually back up into T Machine before OS update but set up utility won't allow anything with OS below 10.5 and I'm 10.4.11. What to do?

    Am replacing airport extreme with Time Machine and want to upgrade from Tiger to Snow leopard. Am told I should manually back up into T Machine before OS update but set up utility won't allow anything with OS below 10.5 and I'm 10.4.11. What to do?

    I think you mean you are replacing your Airport Extreme with a Time Capsule. Time Machine is software integrated into OS X 10.5 & 10.6 used to automatically backup a system to an external HD. Time Capsule is an Airport Extreme that has a hard disk integrated into it that can be used for storage or  as a Time Machine backup drive.
    Because you are currently on Tiger 10.4.x you can backup to a external HD using SuperDuper or Carbon Copy Cloner. Having a backup is very wise before doing any major system update. After  you have created the backup and have successfully upgraded to Snow Leopard you can still use the external HD for many things. The strategy I'd recommend is to use the new Time Capsule as your Time Machine backup and then use the external HD as backup using SuperDuper or CCC. Redundant backups is wise because backups can (and do) fail too! In addition both SD and CCC are bootable clones, this is useful in that if your internal HD crashes you can boot from a cloned drive and continue working until the internal HD is replaced.
    Below are some links to some articles from MacWorld, I would recommend reading them where you find a common theme, redundant backups. Backup Plan I, Backup Plan II & Backup Plan III.
    Roger

  • I replaced my iPhone with a Galaxy 5 and am not receiving all of my text messages. The sales person told me to remove my phone number from iTunes to stop this from happening. Is that true? What does iTunes have to do with text messages?

    I replaced my iPhone with a Samsung Galaxy5 and I am not receiving all of my text messages now. The rep at the store told me to go to iTunes and take my phone # off of the account and that would fix the problem. Is that true? What does iTunes have to do with text messages anyway?

    You need to remove your phone number from the iMessage system.
    Read here: http://support.apple.com/kb/ts5185
    ~Lyssa

Maybe you are looking for