Whenever i am using my sed
command in ubuntu the output is not reflected in the file.
sed 's/dog/cat/' me
does not change dog hates rat
in the file to cat hates rat
in the file me
.
Whenever i am using my sed
command in ubuntu the output is not reflected in the file.
sed 's/dog/cat/' me
does not change dog hates rat
in the file to cat hates rat
in the file me
.
By default, sed
does not edit the input file, it just shows the output on STDOUT.
To edit a file in place, you need the -i
option of sed
:
sed -i.bak 's/dog/cat/' file.txt
After the operation, the original file will be backup up as file.txt.bak
and the modified file will be file.txt
.
In your case:
sed -i.bak 's/dog/cat/' me
If you do not want to keep a back up:
sed -i 's/dog/cat/' file.txt
From man sed
:
-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if SUFFIX supplied)