Hur kan jag visa innehållet i en textfil på kommandoraden?

Jag vill visa innehållet i en textfil på kommandoraden. Filen innehåller endast 5-6 tecken. Finns det ett enkelt sätt att göra detta?

Svar

Använda cat

Eftersom din fil är kort kan du använda cat .

cat filename 

Använda less

Om du måste visa innehållet i en längre fil kan du använda en personsökare såsom less .

less filename 

Du kan göra att less beter sig som cat när de anropas på små filer och beter sig normalt genom att skicka det till -F och -X flaggor.

less -FX filename 

Jag har ett alias för less -FX. Du kan göra en själv så:

alias aliasname="less -FX" 

Om du lägger till alias i din skalkonfiguration kan du använda den för alltid.

Med od

Om din fil innehåller konstiga eller outskrivbara tecken kan du använda od för att undersöka tecknen. Till exempel

$ 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, även sed -n l file kan vara användbart.
  • Har less några tydliga fördelar jämfört med andra personsökarprogram som pg , eller går det bara ner till personliga preferenser?
  • @SamWeinberg: less har mer funktioner än pg. Ta en titt på less(1) och pg(1) manpages. Det finns också andra personsökare. Ta en titt på unix.stackexchange.com/questions/81129/… . less är förmodligen den mest använda personsökaren men vilken du använder kommer till personliga preferenser.
  • don ’ t glöm more och most!

Svar

Även om alla använder cat filename för att skriva ut en filtext till standardutgången är första syftet con katt enating. Från kattens mansida:

cat – sammanfoga filer och skriva ut på standardutdata

Nu är cat bra för utskrift av filer men det finns alternativ:

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

( ) värdet på ett uttryck, i detta fall innehållet i filnamn som sedan utökas med $ för echo eller printf.

Uppdatering:

< filename 

Detta gör precis vad du vill och är lätt att komma ihåg.

Här är ett exempel som låter dig välja en fil i en meny och sedan skriva ut den.

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

För ytterligare information läsning:
BashPitfalls – kattfil | sed s / foo / bar /> fil
Bash-referens – omdirigering

Kommentarer

  • Din uppdatering: ” < filename är exakt wh som du vill, … ” är vilseledande. Sammantaget, även om detta är en intressant diskussion om alternativ, tycker jag att cat är enklare.
  • Bare < filename gör det inte visa innehållet i filen, men cat filename gör det.
  • Du kan också använda tee < filename.
  • +1 för echo "$(<filename)" basism. Inte tillräckligt med det här.
  • Att ’ är en bra idé för att använda Linux Internt kommando med eko "$(<filename)". Tack …

Svar

Verktyg för att hantera textfiler på unix är grundläggande, vardagliga kommandon:

I unix och linux för att skriva ut hela innehållet i filen

cat filename.txt 

eller

more filename.txt 

eller

less filename.txt 

För de sista raderna

tail filename.txt 

För första raderna

head filename.txt 

Svar

Du kan använda följande kommando för att visa innehåll av en textfil.

 cat filename 

Kommentarer

  • För mer information om cat, kör man cat.

Svar

Ett alternativ är att använda more

t.ex.more file.txt

Det har dock inte alla funktioner som lagts till av less.
Ett enkelt exempel är att du kan inte bläddra uppåt i utgången. I allmänhet har det överträffats av mindre – vilket blev skämt eftersom

mindre är mer

Kommentarer

  • Trevlig förklaring till varför mindre var namnet

Svar

Jag använder alltid $ less "your file here", eftersom det är väldigt enkelt, ger en inbyggd interaktiv grep kommando och ger dig ett lättanvänt gränssnitt som du kan bläddra med piltangenterna.

(Det ingår också i nästan alla * nix-system)

Kommentarer

  • less är den överdrivna versionen av more (jämför man less med man more), och för mig har den två irriterande funktioner: 1) det växlar till den alternativa skärmbufferten, när mindre avslutas, försvinner filen du just tittade 2) vid EOF måste du uttryckligen skriva q (jag vet, där ’ är ett alternativ för detta). Så en av mina första åtgärder i en ny miljö är att ställa in export PAGER=/bin/more i min profil och använda more hela tiden.
  • @ ott–: 1) Testa flaggan -X. 2) Testa flaggan -E. less har ett more -emuleringsläge. Du kan aktivera det genom att ställa in LESS_IS_MORE miljövariabel. Du kan bläddra uppåt i more emuleringsläge.
  • Se även: unix.stackexchange.com/questions / 81129 / …
  • Även om jag i allmänhet håller med om att less är alltför- komplicerad. Dess förmåga att köra externa kommandon är ett perfekt exempel på dess överkomplexitet.
  • @EvanTeitelman I ’ Vi har alltid haft grep-funktionen mycket användbar själv, @ott – Jag tycker att på grund av det ’ s emulering av more, och det ’ s många andra funktioner gör det jobbet mycket bra.

Svar

Om det är en stor fil, och du vill söka efter en viss del, kan du använda

 cat filename | grep text_to_search -ni 

Du kan också använda mer interaktiv Vim-editor (eller vi-editor om du inte har Vim):

 vim filename Or vi filename

Vim / vi är en bra redigerare, kan också användas som läsare i ”Normal Mode” eller med alternativet -R, det har många funktioner som hjälper dig att bläddra igenom filen.

Kommentarer

  • Kortare för vim -R är view. Men kom ihåg att det inte gillar omdirigeringar, som diskuteras i xargs och vi – ”Inmatningen kommer inte från en terminal” .
  • tack @manatwork för heads up! Jag har nyligen börjat använda Vim och jag gillar det på grund av dess många funktioner. När det gäller omdirigeringar glömde jag bort det, tack för påminnelsen. Från och med nu arbetar jag på en fjärr-VM, där jag använder ssh utan GUI-gränssnitt, därför är Vim till stor nytta, när någon annan GUI-redigerare inte kan fungera, att ’ s varför jag betonade Vim här.

Svar

Använd cat-kommandot för att visa innehållet i filnamnet. kattfilnamn

Använd vim-kommandot för att redigera filen. vim-filnamn

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *