my_file.txtという名前のファイルがあります その内容は文字列Hello 。そのコンテンツをコマンドechoにリダイレクトするにはどうすればよいですか。 ?
lessというコマンドがあることはわかっています 、cat 、more …でも、echoでやる必要があります 。
私はこれを試しました:
$ cat my_file.txt | echo
そしてこれも:
$ echo < my_file.txt
ただし、どちらの場合も、my_file.txtのコンテンツではなく、stdoutに空白のみが表示されます。
どうすればそれができますか?
承認された回答:
必要なものをすべてechoにリダイレクトできます しかし、それでは何もしません。 echo 標準入力を読み取りません。 引数を標準出力に書き込むだけです。 スペース文字で区切られ、改行文字で終了します(およびechoで終了します いくつかのエスケープシーケンスが展開されている実装や、-で始まる引数 オプションとして扱われる可能性があります。
echoが必要な場合 ファイルのコンテンツを表示するには、そのコンテンツを引数としてechoに渡す必要があります 。次のようなもの:
echo "$(cat my_file.txt)"
$(...)に注意してください 末尾の改行文字を削除しますs そのcatの出力から コマンド、およびecho 1つを追加します 戻る。
zshを除いても注意してください 、コマンドの引数にNUL文字を渡すことはできないため、上記は通常、バイナリファイルでは機能しません。 yash 有効な文字の一部を構成しないバイトも削除されます。
それをしたい理由がechoが欲しいからだとしたら nを展開するには 、b 、