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:
catPoiché il tuo file è breve, puoi usarlo
cat.
cat filename
lessSe è necessario visualizzare il contenuto di un file più lungo, è possibile utilizzare un cercapersone come
less.
less filename
Puoi farti lesscomportare come catse invocato su piccoli file e comportarti normalmente altrimenti passandogli i flag -Fe -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.
odSe il file contiene caratteri strani o non stampabili, è possibile utilizzare
odper 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
lessdei chiari vantaggi rispetto ad altri programmi cercapersone pgo si riduce alle preferenze personali?
lessha 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.
moree most!
Anche se tutti usano cat filenameper 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 echoo 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 catsia più semplice.
< filenamenon visualizza il contenuto del file, ma lo cat filenamefa.
tee < filenameanche 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 grepcomando 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 lesscon 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/morenel mio profilo e l'utilizzo in moreogni momento.
-Xbandiera. 2) Prova la -Ebandiera. lessha una moremodalità di emulazione. È possibile abilitarlo impostando la LESS_IS_MOREvariabile ambientale. È possibile scorrere verso l'alto nella moremodalità di emulazione.
lesssia 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 filepotrebbe anche essere utile.