#!/bin/bash #Usage dsed pattern="$1" file="$2" #We don't want to have a case like this: # 's/a'b// #We need to change that to this: # 's/a'"'"'b// pattern=${pattern//\'/\'\"\'\"\'} if [ "$file" = "" ]; then echo "Usage: dsed " exit; fi sedcmd="sed -e '$pattern' $file" echo $sedcmd diff <(cat $file) <(eval $sedcmd) echo -n "Do you wish to make this change? [yn] " read answer if [ "$answer" != "y" ]; then echo Aborting; exit; fi sedcmd=$(echo $sedcmd | sed -e 's/^sed /sed -i /') eval $sedcmd