Cum pot afișa conținutul unui fișier text pe linia de comandă?

Aș dori să afișez conținutul unui fișier text pe linia de comandă. Fișierul conține doar 5-6 caractere. Există o modalitate ușoară de a face acest lucru?

Răspuns

Utilizarea cat

Deoarece fișierul dvs. este scurt, puteți utiliza cat .

cat filename 

Utilizarea less

Dacă trebuie să vizualizați conținutul unui fișier mai lung, puteți utiliza un pager precum less .

less filename 

Puteți face ca less să se comporte ca cat atunci când este invocat pe fișiere mici și să vă comportați normal altfel trecându-l -F și -X steaguri.

less -FX filename 

Am un alias pentru less -FX. Puteți crea unul singur astfel:

alias aliasname="less -FX" 

Dacă adăugați aliasul la configurația shell-ului , îl puteți folosi pentru totdeauna.

Utilizarea od

Dacă fișierul dvs. conține caractere ciudate sau neprimabile, puteți utiliza od pentru a examina caracterele. De exemplu,

$ 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 

Comentarii

  • +1, de asemenea sed -n l file ar putea fi util.
  • Are less avantaje clare față de alte programe de pager precum pg , sau se rezumă doar la preferințele personale?
  • @SamWeinberg: less are mai multe caracteristici decât pg. Aruncați o privire la less(1) și pagini de manual. Există și alte pagere. Aruncați o privire la unix.stackexchange.com/questions/81129/… . less este probabil cel mai utilizat pager, dar pe care îl utilizați se reduce la preferințele personale.
  • nu ‘ nu uitați de more și de most!

Răspuns

Chiar dacă toată lumea folosește cat filename pentru a imprima un fișier text la ieșirea standard primul scop este con cat enating. Din pagina de manual a cat:

cat – concatenează fișierele și tipărește pe ieșirea standard

Acum pisica este în regulă pentru tipărirea fișierelor, dar există alternative:

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

Revenirea ( ) valoarea unei expresii, în acest caz conținutul filename care apoi este extins cu $ pentru echo sau printf.

Actualizare:

< filename 

Aceasta face exact ceea ce doriți și este ușor de reținut.

Iată un exemplu care vă permite să selectați un fișier dintr-un meniu și apoi să îl imprimați.

#!/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 

Pentru mai multe detalii lectură:
BashPitfalls – fișier cat | sed s / foo / bar /> fișier
Referință Bash – Redirecționare

Comentarii

  • Actualizarea dvs.: ” < filename este exact wh dacă doriți, … ” este înșelător. Per total, deși aceasta este o discuție interesantă despre alternative, cred că cat este mai simplu.
  • Bare < filename nu afișează conținutul fișierului, dar cat filename nu.
  • Puteți utiliza și tee < filename.
  • +1 pentru echo "$(<filename)" bashism. Nu este suficient aici.
  • Această ‘ este o idee grozavă pentru utilizarea comenzii interne Linux cu echo "$(<filename)". Mulțumesc …

Răspuns

Instrumentele pentru gestionarea fișierelor text pe unix sunt comenzi de bază, de zi cu zi:

În unix și linux pentru a imprima întregul conținut în fișier

cat filename.txt 

sau

more filename.txt 

sau

less filename.txt 

Pentru ultimele rânduri

tail filename.txt 

Pentru primele linii

head filename.txt 

Răspuns

Puteți utiliza următoarea comandă pentru a afișa conținutul a unui fișier text.

 cat filename 

Comentarii

  • Pentru mai multe informații despre cat, rulați man cat.

Răspundeți

O opțiune este să folosiți more

de ex.more file.txt

Cu toate acestea, nu are toate caracteristicile adăugate de less.
Un exemplu simplu este că nu puteți derula înapoi în ieșire. În general, a fost depășit cu mai puțin – ceea ce a fost numit în glumă pentru că

mai puțin este mai mult

Comentarii

  • Explicație minunată cu privire la motivul pentru care numele era mai puțin

Răspuns

Folosesc întotdeauna $ less "your file here", deoarece este foarte simplu, oferă un grep și vă oferă o interfață ușor de utilizat pe care o puteți derula cu tastele săgeată.

(Este inclusă și în aproape fiecare sistem * nix)

Comentarii

  • less este versiunea de exagerare a more (comparați man less cu man more) și pentru mine are două caracteristici enervante: 1) comută la tamponul de ecran alternativ, când se termină mai puțin, fișierul pe care tocmai îl vizionați dispare 2) la EOF trebuie să tastați explicit q (știu, acolo = „52485bb63c”>

este o opțiune pentru aceasta). Așadar, una dintre primele mele acțiuni într-un mediu nou este setareaexport PAGER=/bin/moreîn profilul meu și utilizareamoretot timpul.

  • @ ott–: 1) Încercați steagul -X. 2) Încercați steagul -E. less are un mod de emulare more. O puteți activa setând variabila de mediu LESS_IS_MORE. Puteți derula în sus în modul de emulare more.
  • Consultați și: unix.stackexchange.com/questions / 81129 / …
  • Deși, în general, sunt de acord că less este excesiv- complicat. Capacitatea sa de a rula comenzi externe este un exemplu perfect al complexității sale exagerate.
  • @EvanTeitelman Am ‘ întotdeauna mi-am găsit funcționalitatea grep extrem de utilă, @ott – Constat că datorită emulației sale ‘ a more și ‘ Există multe funcții suplimentare, funcționează foarte bine.
  • Răspuns

    Dacă este un fișier mare și doriți să căutați o anumită parte, puteți utiliza

     cat filename | grep text_to_search -ni 

    De asemenea, puteți utiliza un editor Vim mai interactiv (sau un editor vi dacă nu aveți Vim):

     vim filename Or vi filename

    Vim / vi este un editor excelent, poate fi folosit și ca cititor în „Mod normal” sau folosind opțiunea -R, are multe caracteristici care vă va ajuta să navigați prin fișier.

    Comentarii

    • Mai scurt pentru vim -R este view. Dar rețineți că nu îi plac redirecționările, așa cum s-a discutat în xargs și vi – „Intrarea nu provine de la un terminal” .
    • mulțumesc @manatwork for heads up! De curând am început să folosesc Vim și îmi place datorită mai multor caracteristici ale sale. În ceea ce privește redirecționările, am uitat de asta, mulțumesc pentru memento. De acum lucrez la o mașină virtuală la distanță, unde folosesc ssh fără interfață GUI, prin urmare, Vim este de mare folos, atunci când orice alt editor GUI nu poate funcționa, ‘ s de ce am subliniat Vim aici.

    Răspuns

    Utilizați comanda cat pentru a afișa conținutul numelui fișierului. cat filename

    Utilizați comanda vim pentru a edita fișierul. numele fișierului vim

    Lasă un răspuns

    Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *