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
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 jegcat
er enklere. - Bare
< filename
gjør ikke vis innholdet i filen, mencat 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ørman 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 avmore
(sammenlignman less
medman 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 skriveq
(jeg vet, der ‘ er et alternativ for dette). Så en av mine første handlinger i et nytt miljø er å setteexport PAGER=/bin/more
i profilen min og brukemore
hele tiden. - @ ott–: 1) Prøv
-X
-flagget. 2) Prøv flagget-E
.less
har enmore
emuleringsmodus. Du kan aktivere det ved å stille innLESS_IS_MORE
miljøvariabelen. Du kan bla oppover imore
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
erview
. 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
sed -n l file
kan være nyttig.less
noen klare fordeler i forhold til andre personsøkerprogrammer sompg
, eller koker det bare ned til personlig preferanse?less
har mer funksjoner ennpg
. Ta en titt påless(1)
ogpg(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.more
ogmost
!