Aussie living in the San Francisco Bay Area.
Coding since 1998.
.NET Foundation member. C# fan
https://d.sb/
Mastodon: @dan@d.sb

  • 0 Posts
  • 2 Comments
Joined 3 years ago
cake
Cake day: June 14th, 2023

help-circle
  • dan@upvote.autoProgrammer Humor@programming.devLinux Cat
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    2 days ago

    Admittedly I still use cat for this.

    This also works too, but it’s more verbose:

    echo "$(<foo.txt)"
    

    It’s mentioned in the Bash man pages:

    The command substitution $(cat file) can be replaced by the equivalent but faster $(< file).

    EDIT: I was just informed that simply <foo.txt works too.


  • cat is misunderstood a lot. The purpose of cat is to combine multiple files together (it’s literally short for “concatenate”), like cat *.log to combine all log files together.

    If you’re just using it for a single file, then you should just redirect the file to stdin. These two command lines behave similarly:

    cat foo.txt | some-command
    
    some-command < foo.txt
    

    For head, tail, grep and some other commands, you can just pass in the file name directly as an argument (e.g. grep whatever foo.txt).