GNU/Linux >> Znalost Linux >  >> Linux

Přesměrování obsahu souboru na příkaz „echo“?

Mám soubor s názvem my_file.txt jehož obsahem je pouze řetězec Hello . Jak bych mohl přesměrovat jeho obsah na příkaz echo ?

Vím, že mám příkazy less , cat , more … ale musím to udělat pomocí echo .

Zkoušel jsem toto:

$ cat my_file.txt | echo

a také toto:

$ echo < my_file.txt

Ale v obou případech se v stdout objeví pouze prázdné místo, nikoli obsah souboru my_file.txt.

Jak jsem to mohl udělat?

Přijatá odpověď:

Vše, co chcete, můžete přesměrovat na echo ale nic s tím neudělá. echo nečte svůj standardní vstup. Jediné, co dělá, je zapsat na standardní výstup své argumenty oddělené mezerou a ukončené znakem nového řádku (a s trochou echo implementace s některými sekvencemi escape v nich rozšířenými a/nebo argumenty začínajícími - případně považovány za možnosti).

Pokud chcete echo pro zobrazení obsahu souboru musíte tento obsah předat jako argument do echo . Něco jako:

echo "$(cat my_file.txt)"

Všimněte si, že $(...) odstraní znak nového řádku na konci s z výstupu této cat příkaz a echo přidá jeden zpět.

Všimněte si také, že kromě zsh , nemůžete předat znaky NUL v argumentech příkazu, takže výše uvedené obvykle nebude fungovat s binárními soubory. yash také odstraní bajty, které netvoří součást platných znaků.

Pokud to chcete udělat proto, že chcete echo rozbalte n , b ,

Linux
  1. Jak používat příkaz Tar v Linuxu

  2. Příkaz pro výstup obsahu souboru do Stdout?

  3. Io Redirection and the Head Command?

  1. Získejte „povolení odepřeno“ při přesměrování výstupu Sudo Echo „xyz“ do souboru?

  2. Základní příklady příkazu File v Linuxu

  3. 9 Užitečné příklady příkazu Split v Linuxu

  1. Jak mohu použít řádky souboru jako argumenty příkazu?

  2. Jak připojit výstup do souboru?

  3. Jak rekurzivně zobrazit obsah souboru?