Syntax
${varName/Pattern/Replacement}
Given a variable
$ val="test"
Replace first occurence/match
$ echo "${val/t/T}"
Test
Replace all occurences/matches
$ echo "${val//t/T}"
TesT
This can be applied to file input, e.g., replace a comma with a semicolon (a on-liner)
$ echo "a1,b2,c3" > eg.csv
$ while read line; do echo "${line//','/$'\t'}" >> eg.tsv; done < eg.csv
$ cat eg.tsv
a1 b2 c3
Note:
- The tab needs to be escaped as $'\t', which is a quoted string-expansion construct
- Same applies to others like newlines
Refrence: