Hoe kan ik de inhoud van een tekstbestand op de opdrachtregel weergeven?

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

  • +1, ook sed -n l file kan nuttig zijn.
  • Heeft less duidelijke voordelen ten opzichte van andere semafoonprogrammas zoals pg , of komt het gewoon neer op persoonlijke voorkeur?
  • @SamWeinberg: less heeft meer functies dan pg. Bekijk de less(1) en pg(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.
  • don ‘ vergeet more en most!

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, maar cat 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, voer man 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 van more (vergelijk man less met man 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 expliciet q typen (ik weet het, daar is ‘ is hiervoor een optie). Dus een van mijn eerste acties in een nieuwe omgeving is het instellen van export PAGER=/bin/more in mijn profiel en more de hele tijd gebruiken.
  • @ ott–: 1) Probeer de vlag -X. 2) Probeer de vlag -E. less heeft een more emulatiemodus. U kunt het inschakelen door de omgevingsvariabele LESS_IS_MORE in te stellen. U kunt omhoog scrollen in de more 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 is view. 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

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *