Hvordan kan jeg vise innholdet i en tekstfil på kommandolinjen?

Jeg vil gjerne vise innholdet i en tekstfil på kommandolinjen. Filen inneholder bare 5-6 tegn. Er det en enkel måte å gjøre dette på?

Svar

Bruk cat

Siden filen din er kort, kan du bruke cat .

cat filename 

Bruk av less

Hvis du må se innholdet i en lengre fil, kan du bruke en personsøker slik som less .

less filename 

Du kan få less til å oppføre seg som cat når de blir påkalt på små filer og oppføre deg ellers ved å sende den til -F og -X flagg.

less -FX filename 

Jeg har et alias for less -FX. Du kan lage en slik:

alias aliasname="less -FX" 

Hvis du legger til aliaset til skallkonfigurasjonen , kan du bruke den for alltid.

Ved hjelp av od

Hvis filen din inneholder rare eller ikke-utskrivbare tegn, kan du bruke od for å undersøke tegnene. For eksempel

$ 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 

Kommentarer

  • +1, også sed -n l file kan være nyttig.
  • Har less noen klare fordeler i forhold til andre personsøkerprogrammer som pg , eller koker det bare ned til personlig preferanse?
  • @SamWeinberg: less har mer funksjoner enn pg. Ta en titt på less(1) og pg(1) manpages. Det er andre personsøkere også. Ta en titt på unix.stackexchange.com/questions/81129/… . less er sannsynligvis den mest brukte personsøkeren, men hvilken du bruker kommer til personlig preferanse.
  • don ‘ t glem more og most!

Svar

Selv om alle bruker cat filename for å skrive ut en filtekst til standardutgangen, er det første formålet med katt enating. Fra kattens mannsside:

cat – sammenkoble filer og skrive ut på standardutdata

Nå er katten greit å skrive ut filer, men det er alternativer:

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

( ) verdien av et uttrykk, i dette tilfellet innholdet av filnavn som deretter utvides med $ for echo eller printf.

Oppdatering:

< filename 

Dette gjør akkurat det du vil og er lett å huske.

Her er et eksempel som lar deg velge en fil i en meny og deretter skrive den ut.

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

For ytterligere informasjon lesing:
BashPitfalls – cat-fil | sed s / foo / bar /> fil
Bash-referanse – omdirigering

Kommentarer

  • Din oppdatering: » < filename er nøyaktig wh du vil, … » er villedende. Totalt sett, selv om dette er en interessant diskusjon om alternativer, tror jeg cat er enklere.
  • Bare < filename gjør ikke vis innholdet i filen, men cat filename gjør det.
  • Du kan også bruke tee < filename.
  • +1 for echo "$(<filename)" basisme. Ikke nok av det her.
  • At ‘ er god idé for å bruke Linux intern kommando med ekko "$(<filename)". Takk …

Svar

Verktøy for håndtering av tekstfiler på unix er grunnleggende hverdagskommandoer:

I unix og linux for å skrive ut hele innholdet i filen

cat filename.txt 

eller

more filename.txt 

eller

less filename.txt 

For de siste linjene

tail filename.txt 

For første linjene

head filename.txt 

Svar

Du kan bruke følgende kommando til å vise innhold av en tekstfil.

 cat filename 

Kommentarer

  • For mer informasjon om cat, kjør man cat.

Svar

Ett alternativ er å bruke more

f.eks.more file.txt

Den har imidlertid ikke alle funksjonene lagt til av less.
Et enkelt eksempel er at du kan ikke bla tilbake i utgangen. Generelt har det blitt overgått av mindre – noe som ble kalt i spøk, fordi

mindre er mer

Kommentarer

  • Fin forklaring på hvorfor mindre var navnet

Svar

Jeg bruker alltid $ less "your file here", da det er veldig enkelt, gir det en innebygd interaktiv grep kommando, og gir deg et brukervennlig grensesnitt som du kan bla med piltastene.

(Det er også inkludert på nesten alle * nix-systemer)

Kommentarer

  • less er overkill-versjonen av more (sammenlign man less med man more), og for meg har den to irriterende funksjoner: 1) den bytter til den alternative skjermbufferen, når mindre slutter, forsvinner filen du nettopp så 2) ved EOF må du eksplisitt skrive q (jeg vet, der ‘ er et alternativ for dette). Så en av mine første handlinger i et nytt miljø er å sette export PAGER=/bin/more i profilen min og bruke more hele tiden.
  • @ ott–: 1) Prøv -X -flagget. 2) Prøv flagget -E. less har en more emuleringsmodus. Du kan aktivere det ved å stille inn LESS_IS_MORE miljøvariabelen. Du kan bla oppover i more emuleringsmodus.
  • Se også: unix.stackexchange.com/questions / 81129 / …
  • Selv om jeg generelt er enig i at less er altfor- komplisert. Dens evne til å kjøre eksterne kommandoer er et perfekt eksempel på overkompleksitet.
  • @EvanTeitelman I ‘ har alltid funnet grep-funksjonaliteten ekstremt nyttig selv, @ott – Jeg finner det på grunn av det ‘ s emulering av more, og det ‘ s mange tilleggsfunksjoner gjør den jobben veldig bra.

Svar

Hvis det er en stor fil, og du vil søke i en bestemt del, kan du bruke

 cat filename | grep text_to_search -ni 

Du kan også bruke mer interaktiv Vim-editor (eller vi-editor hvis du ikke har Vim):

 vim filename Or vi filename

Vim / vi er en flott redaktør, kan også brukes som leser i «Normal Mode» eller ved å bruke alternativet -R, det har mange funksjoner som vil hjelpe deg med å bla gjennom filen.

Kommentarer

  • Kortere for vim -R er view. Men husk at den ikke liker omdirigeringer, som diskutert i xargs og vi – “Input is not from a terminal” .
  • takk @manatwork for heads up! Jeg har nylig begynt å bruke Vim, og jeg liker det på grunn av flere funksjoner. Når det gjelder viderekoblinger, glemte jeg det, takk for påminnelse. Fra nå av jobber jeg på en ekstern VM, der jeg bruker ssh uten GUI-grensesnitt, derfor er Vim til stor nytte, når noen annen GUI-editor ikke kan fungere, at ‘ s hvorfor jeg la vekt på Vim her.

Svar

Bruk cat-kommandoen til å vise innholdet i filnavnet. kattens filnavn

Bruk vim-kommandoen til å redigere filen. vim filnavn

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *