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
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, darcat 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țiman 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 amore
(comparațiman less
cuman 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 explicitq
(ș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 utilizareamore
tot timpul.
-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
. less
este excesiv- complicat. Capacitatea sa de a rula comenzi externe este un exemplu perfect al complexității sale exagerate. 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
esteview
. 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
sed -n l file
ar putea fi util.less
avantaje clare față de alte programe de pager precumpg
, sau se rezumă doar la preferințele personale?less
are mai multe caracteristici decâtpg
. Aruncați o privire laless(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.more
și demost
!