The utility ~emos/bin/ls.py provides a way to dump server content below a given node.
It can be used to replace a variable throughout all suites on a server:
LS=~emos/bin/ls.py
string=/vol/$USER/output
new=/vol/${USER}_output
PORT=$(($(id -n)+ 1500))
HOST=localhost
client="ecflow_client --port=$PORT --host=$HOST"
# list all suites
suites="$($client --suites)"
# list all variables occurrence with value to change
for s in $suites; do ECF_HOST=$HOST ECF_PORT=$PORT $LS -NRVv /$s ; done | grep $string | grep -E -v "(ECF_SCRIPT|ECF_JOB)" > list.tmp
# replace
while read -r path val; do
p=$(echo $path | cut -d: -f1);
name=$(echo $path | cut -d: -f2);
$client --alter=change variable $name $new $p;
done < list.tmp