Ik wil de inhoud van een tekstbestand op de opdrachtregel weergeven. Het bestand bevat slechts 5-6 tekens. Is er een gemakkelijke manier om dit te doen?
Antwoord
Met cat
Aangezien uw bestand kort is, kunt u cat
gebruiken.
cat filename
Met less
Als u de inhoud van een langer bestand moet bekijken, kunt u een pager gebruiken zoals less
.
less filename
U kunt ervoor zorgen dat less
zich gedraagt als cat
wanneer deze wordt aangeroepen voor kleine bestanden en u normaal anders gedraagt door het de -F
en -X
vlaggen.
less -FX filename
Ik heb een alias voor less -FX
. Je kunt er zelf zo een maken:
alias aliasname="less -FX"
Als je de alias toevoegt aan je shell-configuratie , je kunt het voor altijd gebruiken.
Met od
Als je bestand vreemde of niet-afdrukbare tekens bevat, kun je od
om de karakters te onderzoeken. Bijvoorbeeld:
$ 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
Reacties
Antwoord
Hoewel iedereen cat filename
gebruikt om een bestandstekst naar de standaarduitvoer af te drukken, is het eerste doel con kat enating. Van de man-pagina van cat:
cat – voeg bestanden samen en druk ze af op de standaarduitvoer
Cat is prima voor het afdrukken van bestanden, maar er zijn alternatieven:
echo "$(<filename)" or printf "%s" "$(<filename)"
De ( )
return de waarde van een expressie, in dit geval de inhoud van bestandsnaam die vervolgens wordt uitgebreid met $
voor echo
of printf
.
Update:
< filename
Dit doet precies wat je wilt en is gemakkelijk te onthouden.
Hier is een voorbeeld waarmee u een bestand in een menu kunt selecteren en het vervolgens kunt afdrukken.
#!/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
Voor meer lezen:
BashPitfalls – cat-bestand | sed s / foo / bar /> -bestand
Bash-referentie – omleiden
Reacties
- Uw update: ”
< filename
is precies wh naar je zin, … ” is misleidend. Over het algemeen denk ik dat, hoewel dit een interessante discussie is over alternatieven,cat
eenvoudiger is. - Bare
< filename
niet de inhoud van het bestand weergeven, maarcat filename
doet dat wel. - Je zou ook
tee < filename
kunnen gebruiken. - +1 voor het
echo "$(<filename)"
bashisme. Hier niet genoeg van. - Dat ‘ s geweldige idee voor het gebruik van Linux Internal Command met echo
"$(<filename)"
. Bedankt …
Answer
Tools voor het omgaan met tekstbestanden op Unix zijn eenvoudige, alledaagse opdrachten:
In unix en linux om volledige inhoud in bestand af te drukken
cat filename.txt
of
more filename.txt
of
less filename.txt
Voor de laatste paar regels
tail filename.txt
Voor eerste paar regels
head filename.txt
Antwoord
U kunt de volgende opdracht gebruiken om inhoud weer te geven van een tekstbestand.
cat filename
Reacties
- Voor meer informatie over
cat
, voerman cat
uit.
Antwoord
Een optie is om more
te gebruiken, bijv.more file.txt
Het heeft echter niet alle functie toegevoegd door less
.
Een eenvoudig voorbeeld is dat je kunt “niet terug scrollen in de uitvoer. Over het algemeen is het overschreden door less – wat voor de grap werd genoemd omdat
less is more
Reacties
- Leuke uitleg waarom minder de naam was
Answer
Ik gebruik altijd $ less "your file here"
, omdat het heel eenvoudig is, biedt een ingebouwde interactieve grep
commando, en geeft je een gebruiksvriendelijke interface die je kunt scrollen met de pijltjestoetsen.
(Het is ook opgenomen op bijna elk * nix-systeem)
Reacties
-
less
is de overkill-versie vanmore
(vergelijkman less
metman more
), en voor mij heeft het twee vervelende eigenschappen: 1) het schakelt over naar de alternatieve schermbuffer, als less eindigt, verdwijnt het bestand dat je net aan het bekijken was 2) bij EOF moet je explicietq
typen (ik weet het, daar is ‘ is hiervoor een optie). Dus een van mijn eerste acties in een nieuwe omgeving is het instellen vanexport PAGER=/bin/more
in mijn profiel enmore
de hele tijd gebruiken. - @ ott–: 1) Probeer de vlag
-X
. 2) Probeer de vlag-E
.less
heeft eenmore
emulatiemodus. U kunt het inschakelen door de omgevingsvariabeleLESS_IS_MORE
in te stellen. U kunt omhoog scrollen in demore
emulatiemodus. - Zie ook: unix.stackexchange.com/questions / 81129 / …
- Hoewel ik het in het algemeen wel eens ben dat
less
overdreven is ingewikkeld. Zijn vermogen om externe commandos uit te voeren is een perfect voorbeeld van zijn over-complexiteit. - @EvanTeitelman Ik ‘ heb de grep-functionaliteit zelf altijd buitengewoon nuttig gevonden, @ott – Ik merk dat daarom ‘ s emulatie van
more
, en het ‘ s vele extra functies, het doet het werk uitstekend.
Antwoord
Als het een groot bestand is, en als je een specifiek onderdeel wilt doorzoeken, kun je
cat filename | grep text_to_search -ni
gebruiken. Je kunt ook meer interactieve Vim-editor gebruiken (of vi-editor als je Vim niet hebt):
vim filename Or vi filename
Vim / vi is een geweldige editor, kan ook worden gebruikt als een lezer in “Normale modus” of met de optie -R, het heeft veel functies die helpt u bij het bladeren door het bestand.
Opmerkingen
- Korter voor
vim -R
isview
. Maar onthoud dat het niet van omleidingen houdt, zoals besproken in xargs en vi – “Invoer is niet van een terminal” . - bedankt @manatwork voor de heads-up! Ik ben onlangs begonnen met het gebruik van Vim en ik vind het leuk vanwege de verschillende functies. Met betrekking tot omleidingen, ik ben dat vergeten, bedankt voor de herinnering. Vanaf nu werk ik op een externe VM, waar ik ssh gebruik zonder GUI-interface, daarom is Vim van groot nut, wanneer een andere GUI-editor niet kan werken, die ‘ s waarom ik hier de nadruk legde op Vim.
Answer
Gebruik het cat-commando om de inhoud van de bestandsnaam weer te geven. cat bestandsnaam
Gebruik vim commando om bestand te bewerken. vim bestandsnaam
sed -n l file
kan nuttig zijn.less
duidelijke voordelen ten opzichte van andere semafoonprogrammas zoalspg
, of komt het gewoon neer op persoonlijke voorkeur?less
heeft meer functies danpg
. Bekijk deless(1)
enpg(1)
manpages. Er zijn ook andere piepers. Kijk eens naar unix.stackexchange.com/questions/81129/… .less
is waarschijnlijk de meest gebruikte pager, maar welke je gebruikt komt neer op persoonlijke voorkeur.more
enmost
!