I want to remove ${} among arithmetic form in the file using sed
for example abc=$(( ${var}+3 )) to abc=$(( var+3 ))
I’m using positional swapping in sed
something like
sed -E 's/(w+W$(( ) (${) (w+) (}) (.*)/1 3 5/g file.txt'
but it extracts only abc=3 when I use
echo abc=$((( ${var}+3 )) | sed -E 's/(w+W$(( ) (${) (w+) (}) (.*)/1 3 5/'
in terminal, just to check if it works all right
and it did nothing on shell script how can I remove only ${} part of the file?
I am using Mac OS and also tried on Ubuntu but it was still the same
3
Answers
Using
sed
1st solution: Using capturing groups concept here and substituting matched values with captured values and only with which are required please try following
sed
code. Here is the Online Demo for used regex insed
code.OR use following in case you have an Input_file from where you want to substitute values.
2nd solution: Using Perl’s one-liner approach using Lazy match regex to make life easier here, one could try following.