Vorrei visualizzare il contenuto di un file di testo sulla riga di comando. Il file contiene solo 5-6 caratteri. C'è un modo semplice per farlo?
Vorrei visualizzare il contenuto di un file di testo sulla riga di comando. Il file contiene solo 5-6 caratteri. C'è un modo semplice per farlo?
Risposte:
cat
Poiché il tuo file è breve, puoi usarlo
cat
.
cat filename
less
Se è necessario visualizzare il contenuto di un file più lungo, è possibile utilizzare un cercapersone come
less
.
less filename
Puoi farti less
comportare come cat
se invocato su piccoli file e comportarti normalmente altrimenti passandogli i flag -F
e -X
.
less -FX filename
Ho un alias per less -FX
. Puoi crearne uno così:
alias aliasname='less -FX'
Se aggiungi l'alias alla configurazione della shell , puoi usarlo per sempre.
od
Se il file contiene caratteri strani o non stampabili, è possibile utilizzare
od
per esaminare i caratteri. Per esempio,
$ 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
less
dei chiari vantaggi rispetto ad altri programmi cercapersone pg
o si riduce alle preferenze personali?
less
ha più funzionalità di pg
. Dai un'occhiata alle pagine man less(1)
e pg(1)
. Ci sono anche altri cercapersone. Dai un'occhiata a unix.stackexchange.com/questions/81129/… . less
è probabilmente il cercapersone più utilizzato ma quale si utilizza dipende dalle preferenze personali.
more
e most
!
Anche se tutti usano cat filename
per stampare un file di testo per l'output primo scopo è di serie con il gatto enating. Dalla pagina man di cat:
cat - concatena i file e stampa sull'output standard
Ora cat va bene per la stampa di file ma ci sono alternative:
echo "$(<filename)"
or
printf "%s" "$(<filename)"
Il ( )
ritorno del valore di un'espressione, in questo caso il contenuto di nome di file che poi viene espansa $
per echo
o printf
.
Aggiornare:
< filename
Questo fa esattamente quello che vuoi ed è facile da ricordare.
Ecco un esempio che ti consente di selezionare un file in un menu e quindi stamparlo.
#!/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
Per ulteriori letture:
BashPitfalls - file cat | sed s / foo / bar /> file
Bash Reference - Reindirizzamento
< filename
è esattamente quello che vuoi, ..." è fuorviante. Nel complesso, sebbene si tratti di una discussione interessante sulle alternative, penso che cat
sia più semplice.
< filename
non visualizza il contenuto del file, ma lo cat filename
fa.
tee < filename
anche tu .
echo "$(<filename)"
basismo. Non abbastanza di questo qui.
"$(<filename)"
. Grazie ...
Gli strumenti per la gestione dei file di testo su unix sono comandi di base di tutti i giorni:
In unix e Linux per stampare l'intero contenuto nel file
cat filename.txt
o
more filename.txt
o
less filename.txt
Per le ultime righe
tail filename.txt
Per le prime righe
head filename.txt
Un'opzione è usare more
per esempio more file.txt
Tuttavia non ha tutte le funzionalità aggiunte da less
.
Un semplice esempio è che non è possibile scorrere indietro nell'output. Generalmente è stato superato da meno - che è stato chiamato per scherzo perché
meno è meglio
Uso sempre $ less "your file here"
, poiché è molto semplice, fornisce un grep
comando interattivo integrato e ti dà un'interfaccia facile da usare che puoi scorrere con i tasti freccia.
(È anche incluso in quasi tutti i sistemi * nix)
less
è la versione overkill di more
(confronta man less
con man more
), e per me ha due fastidiose funzionalità: 1) passa al buffer dello schermo alternativo, quando meno termina, il file che stavi visualizzando svanisce 2) su EOF devi digitare esplicitamente q
(Lo so, c'è un'opzione per questo). Quindi una delle mie prime azioni in un nuovo ambiente è l'impostazione export PAGER=/bin/more
nel mio profilo e l'utilizzo in more
ogni momento.
-X
bandiera. 2) Prova la -E
bandiera. less
ha una more
modalità di emulazione. È possibile abilitarlo impostando la LESS_IS_MORE
variabile ambientale. È possibile scorrere verso l'alto nella more
modalità di emulazione.
less
sia eccessivamente complicato. La sua capacità di eseguire comandi esterni è un esempio perfetto della sua eccessiva complessità.
more
, e delle sue molte funzionalità aggiuntive, fa molto bene il lavoro.
Se si tratta di un file di grandi dimensioni e si desidera cercare una parte specifica, è possibile utilizzare
cat filename | grep text_to_search -ni
Inoltre puoi usare un editor Vim più interattivo (o un editor vi se non hai Vim):
vim filename
Or
vi filename
Vim / vi è un ottimo editor, può anche essere usato come lettore in "Modalità normale" o usando l'opzione -R, ha molte caratteristiche che ti aiuteranno a sfogliare il file.
vim -R
è view
. Ma tieni presente che non gli piacciono i reindirizzamenti, come discusso in xargs e vi - "L'input non proviene da un terminale" .
Utilizzare il comando cat per visualizzare il contenuto del nome file. nome file cat
Utilizzare il comando vim per modificare il file. nome file vim
sed -n l file
potrebbe anche essere utile.