Jak mohu zobrazit obsah textového souboru na příkazovém řádku?

Chtěl bych zobrazit obsah textového souboru na příkazovém řádku. Soubor obsahuje pouze 5-6 znaků. Existuje snadný způsob, jak to udělat?

Odpovědět

Pomocí cat

Protože je váš soubor krátký, můžete použít cat .

cat filename 

Použití less

Pokud si chcete prohlédnout obsah delšího souboru, můžete použít stránkovací program například less .

less filename 

Při vyvolání u malých souborů můžete less chovat se jako cat a chovat se normálně jinak tím, že jej předáte -F a -X příznaky.

less -FX filename 

Mám alias pro less -FX. Můžete si sami jednu vyrobit:

alias aliasname="less -FX" 

Pokud do své konfigurace shellu přidáte alias , můžete jej používat navždy.

Použití od

Pokud váš soubor obsahuje divné nebo netisknutelné znaky, můžete použít od zkoumat znaky. Například

$ cat file (ÐZ4 ?o=÷jï $ od -c test 0000000 202 233 ( 320 K j 357 024 J 017 h Z 4 240 ? o 0000020 = 367 \n 0000023 

Komentáře

  • +1, také sed -n l file může být užitečný.
  • less nějaké jasné výhody oproti jiným stránkovacím programům, jako je pg , nebo se to jen vaří podle osobních preferencí?
  • @SamWeinberg: less má více funkce než pg. Podívejte se na less(1) a pg(1) stránky. Existují i jiné pagery. Podívejte se na unix.stackexchange.com/questions/81129/… . less je pravděpodobně nejpoužívanější pager, ale který používáte, záleží na osobních preferencích.
  • don ‚ Nezapomeňte more a most!

Odpovědět

I když každý používá cat filename k tisku textu souborů na standardní výstup, první účel je kon cat enating. Z mužské stránky kočky:

kočka – zřetězení souborů a tisk na standardní výstup

Nyní je kočka v pořádku pro tisk souborů, ale existují alternativy:

 echo "$(<filename)" or printf "%s" "$(<filename)" 

( ) návrat hodnota výrazu, v tomto případě obsah názvu souboru , který je poté rozšířen o $ pro echo nebo printf.

Aktualizace:

< filename 

Dělá přesně to, co chcete a je snadno zapamatovatelné.

Zde je příklad, který vám umožní vybrat soubor v nabídce a poté jej vytisknout.

#!/bin/bash select fname in *; do # Don"t forget the "" around the second part, else newlines won"t be printed printf "%s" "$(<$fname)" break done 

Další čtení:
BashPitfalls – kočičí soubor | sed s / foo / bar /> soubor
Bash Reference – přesměrování

Komentáře

  • Vaše aktualizace: “ < filename je přesně wh kdykoli chcete … “ je zavádějící. Přestože se jedná o zajímavou diskusi o alternativách, myslím si, že cat je jednodušší.
  • Bare < filename není zobrazit obsah souboru, ale cat filename ano.
  • Můžete také použít tee < filename.
  • +1 pro echo "$(<filename)" bashismus. Tady toho není dost.
  • To je skvělý nápad ‚ používat interní příkaz Linux s echo "$(<filename)". Díky …

Odpověď

Nástroje pro práci s textovými soubory v unixu jsou základní každodenní příkazy:

V unixu a linuxu vytiskne celý obsah souboru

cat filename.txt 

nebo

more filename.txt 

nebo

less filename.txt 

Za posledních několik řádků

tail filename.txt 

Pro prvních pár řádků

head filename.txt 

Odpověď

K zobrazení obsahu můžete použít následující příkaz textového souboru.

 cat filename 

Komentáře

  • Další informace o cat, spusťte man cat.

odpověď

Jednou z možností je použít more

např.more file.txt

Neobsahuje však všechny funkce přidané less.
Jedním jednoduchým příkladem je, že ve výstupu nelze posunout zpět. Obecně to bylo překonáno méně – což bylo pojmenováno v žertu, protože

méně je více

Komentáře

  • Pěkné vysvětlení, proč méně bylo jméno

Odpověď

Vždy používám $ less "your file here", protože je velmi jednoduchý, poskytuje vestavěný interaktivní grep příkaz a poskytuje snadno použitelné rozhraní, které můžete posouvat pomocí kláves se šipkami.

(Je také součástí téměř každého systému * nix)

Komentáře

  • less je přehnaná verze more (srovnej man less s man more) a pro mě má dvě nepříjemné funkce: 1) přepne se na alternativní vyrovnávací paměť obrazovky, když se méně ukončí, soubor, který jste právě prohlíželi, zmizí 2) na EOF musíte explicitně zadat q (vím, že ‚ s touto možností). Jednou z mých prvních akcí v novém prostředí je tedy nastavení export PAGER=/bin/more do mého profilu a používání more pořád.
  • @ ott–: 1) Vyzkoušejte příznak -X. 2) Vyzkoušejte příznak -E. lessmore režim emulace. Můžete jej povolit nastavením environmentální proměnné LESS_IS_MORE. V režimu emulace more se můžete posouvat nahoru.
  • Viz také: unix.stackexchange.com/questions / 81129 / …
  • Obecně však souhlasím s tím, že less je přehnaně- složitý. Jeho schopnost spouštět externí příkazy je dokonalým příkladem jeho přílišné složitosti.
  • @EvanTeitelman I ‚ jsem sám zjistil, že funkce grep je pro mě nesmírně užitečná, @ott – Zjistil jsem, že kvůli tomu ‚ s emulace more a ‚ Díky mnoha dalším funkcím dělá svou práci velmi dobře.

Odpovědět

Pokud jde o velký soubor a chcete-li vyhledat nějakou konkrétní část, můžete použít

 cat filename | grep text_to_search -ni 

Můžete také použít interaktivnější editor Vim (nebo editor vi, pokud nemáte Vim):

 vim filename Or vi filename

Vim / vi je skvělý editor, lze jej také použít jako čtečku v „normálním režimu“ nebo pomocí volby -R, má mnoho funkcí, které vám pomůže při procházení souboru.

Komentáře

  • Kratší pro vim -R je view. Mějte však na paměti, že nemá rád přesměrování, jak je popsáno v xargs a vi – „Vstup není z terminálu“ .
  • díky @manatwork pro heads up! Nedávno jsem začal používat Vim a líbí se mi to kvůli jeho několika funkcím. Pokud jde o přesměrování, na to jsem zapomněl, děkuji za připomenutí. Od této chvíle pracuji na vzdáleném VM, kde používám ssh bez grafického uživatelského rozhraní, proto je Vim velmi užitečné, když žádný jiný editor grafického uživatelského rozhraní nemůže fungovat, že ‚ s proč jsem zde zdůraznil Vima.

Odpověď

Pomocí příkazu cat zobrazte obsah názvu souboru. název souboru kočky

Upravte soubor pomocí příkazu vim. vim název souboru

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *