Need help with a script to find and replace text in multiple confluence pages
Asked by Jagadeesh:

Hi,  
I have been assigned a task to find and replace few words in confluence pages and I came across script runner as a very useful tool. I will be very thankful if anyone in this group can help me with a script that will help me to accomplish my task of finding and replacing text at the page level in confluence.  
Thanks in advance,  
Regards,  
M J


Answers:
author: Kishan Sharma
body: Hi [@Jagadeesh](/t5/user/viewprofilepage/user-id/4471688) Welcome to the Atlassian Community!

[This blog](https://www.adaptavist.com/blog/find-and-replace-text-across-several-confluence-pages) on scriptrunner site already have a script that you can download and modify as per your requirement. The example script works on a single space, but you can modify the code to loop through all your confluence spaces and its pages and perform search/replace as per your use case.

comments: author: Jagadeesh
body: Hi Kishan,

Thank you very much for your quick reply. Yes, I am using the sample script shared by the Script runner trial version tool, but it is throwing errors and I need someone who has already used this script to help me in debugging or modifying the current script.

The sample script shows how to modify within a table in confluence page, I want to modify text within a page in confluence. I am not sure what code elements to use. if you have an idea how to modify the script, please do message me at this mail id

jmadineni@billtrust.com. I will be very thankful for helping me out.

Regards,

M Jags


author: Kishan Sharma
body: Hi Jagadeesh,

I will also suggest posting this question to [Atlassian Developer Community](https://community.developer.atlassian.com/) so that you will get better solutions from the developers working on such scripting activities. I will also post here in case I able to get this to work.


author: Jagadeesh
body: Hi Kishan,

Thanks for the suggestion. Sure, I will post in the developer community too. I have another 10 days before the trial version expires. In the meanwhile, if you know any groovy script developers please suggest their mail ids. I will try connecting with them.


author: Kieran Gainer
body: Hey, I just publicized a Node.Js script I created and have been using for bulk replacing text within a Confluence Cloud space.  

There are two .js scripts included, one for swapping page content (index.js), and one for updating page titles (updatePageTitles.js).  

Hopefully this helps someone!  

<https://github.com/krgainer/confluence-bulk-change>

comments: author: Kishan Sharma
body: Welcome to the Atlassian Community and thank you for sharing the script [@Kieran Gainer](/t5/user/viewprofilepage/user-id/5308659) !


author: Tiffany Wortham
body: Hi Jagadeesh,  

Here's what your script might look like if you wanted to find and replace text anywhere on particular Confluence pages:  

```
import com.atlassian.confluence.pages.PageManager
import com.atlassian.confluence.spaces.SpaceManager
import com.atlassian.sal.api.component.ComponentLocator
import org.jsoup.Jsoup

def pageManager = ComponentLocator.getComponent(PageManager)
def spaceManager = ComponentLocator.getComponent(SpaceManager)

def targetSpace = spaceManager.getSpace("SAL")

pageManager.getPages(targetSpace, true).each { page ->
    log.debug "Inspecting page ${page.title}"
    def body = page.bodyContent.body
    body = body.replace('Human Resources', 'HR')
    pageManager.saveNewVersion(page) { pageObject ->
        pageObject.setBodyAsString(body)
    }
}
```

comments: author: Cami
body: Hello

[@Tiffany Wortham](/t5/user/viewprofilepage/user-id/1420833) Is this possible with script runner for cloud?


author: Tiffany Wortham
body: Hi cami!  

I'm sure this is possible with ScriptRunner for Confluence Cloud, but your script will look pretty different because you'll have to use the Confluence Cloud Rest API.


author: Cami
body: Hey Tiffany. The Confluence Cloud REST API documentation states that connect apps cannot access the rest resource necessary to perform that action. Isn't ScriptRunner a connect app?


Tags: cloud

confluence-cloud