Can sed save its output to a file?

  • > 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?

    Please try to find the answer yourself before posting questions here. The first thing we ask of our users is to search and research before posting. All you needed to do was `sed '' file > newfile` and you would have seen that `>` can indeed be used with `sed` just like with any other program.

    That's still using the `>` 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.

    Ah, right. OK, that's a very different question. Since you accepted the `sed -i` answer, I'll edit your question and clarify what you're after.

    I accepted "`sed `is not meant for data redirection as `tee` and `>` (are) meant to be".

  • ankidaemon

    ankidaemon Correct answer

    5 years ago

    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.

    Thanks. You understood my question. So the answer is no. I thought `sed` on it's own maybe could do it, because it's also capable of creating backup files with the `-i.bak` option.

    Correct. Also -i.bak is not a fixed option, you can use any extension, which you would like your backup file to have. for ex. -i.log will also work. :)

    I just like to add that was actually looking for `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.

License under CC-BY-SA with attribution


Content dated before 6/26/2020 9:53 AM