>
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
?
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. It only takes a minute to sign up.
Sign up to join this community>
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.
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.
-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
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.>
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.sed -i
answer, I'll edit your question and clarify what you're after.sed
is not meant for data redirection astee
and>
(are) meant to be".