>
can do it.
echo "text" > file
tee
can do it.
echo "test" | tee file
Can sed
do it without using either of the above? Is it possible to save the output of a sed
command to a file without using either >
or tee
?
>
can do it.
echo "text" > file
tee
can do it.
echo "test" | tee file
Can sed
do it without using either of the above? Is it possible to save the output of a sed
command to a file without using either >
or tee
?
tee and > can be used for data redirection because these are meant to be used for data redirection in linux.
sed on the other hand is a stream editor. sed is not meant for data redirection as tee and > meant to be. However you can use conjunction of commands to do that.
use tee or > with sed
sed 's/Hello/Hi/g' file-name | tee file
or
sed 's/Hello/Hi/g' file-name > file
use sed with -i option
sed -i 's/Hello/Hi/g' file-name
the last one does not redirect, instead it will make changes in the file itself.
sed
on it's own maybe could do it, because it's also capable of creating backup files with the -i.bak
option.
– Folaht
May 16 '16 at 10:56
echo "test" | dd of=file status=none
, suppressing an echo's output without using the obscure output redirection 2> /dev/null
, but instead asked for sed's limitations. I was really impressed by sed's abilities as it's capable of appending lines in file, giving me the impression that sed could do anything tee could do and more.
– Folaht
May 16 '16 at 11:26
-i
: sed: 1: "pubspec.yaml": extra characters at the end of p command
. My command: sed -i 's/version:.*/version: 0.0.11+4/g' pubspec.yaml
– Rebar
Jun 03 '21 at 22:40
sed 's/Hello/Hi/g' file-name > file
if file-name == file
refer to this answer
– Animeta
May 11 '22 at 16:50
sed
has the w
command that might do what you require:
w filename
Write the current pattern space to filename.
sed 'w file'
on its own will have the same effect as tee file
. If there are other sed commands, put the w
last:
sed 's/This/That/;w file'
However, this won't be affected by the -n/--quiet/--silent
option. That only suppresses the content that would otherwise have gone to standard output.
As ankidaemon correctly pointed out how we can save sed output to a file. I would like to add that if we are performing some operations on a file i.e replace and would like to save the output to the same file. There is a -i
flag in sed
which makes inplace edits possible. This however creates a backup file in the process if a suffix is provided as argument. If that's not needed, that can be done by just passing empty filename or nothing to -i
flag.
Example: sed -i "s/from/to/" file
is inplace changing the file
.
sed '' file > newfile
and you would have seen that>
can indeed be used withsed
just like with any other program. – terdon May 16 '16 at 10:09>
operator. I was interested if there were a sed command that could be used instead. But I'll delete this question if it's so bad. – Folaht May 16 '16 at 10:29sed -i
answer, I'll edit your question and clarify what you're after. – terdon May 16 '16 at 10:34sed
is not meant for data redirection astee
and>
(are) meant to be". – Folaht May 16 '16 at 10:51