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
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 attcatär enklare. - Bare
< filenamegör det inte visa innehållet i filen, mencat filenamegö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örman 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 avmore(jämförman lessmedman 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 skrivaq(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 inexport PAGER=/bin/morei min profil och användamorehela tiden. - @ ott–: 1) Testa flaggan
-X. 2) Testa flaggan-E.lesshar ettmore-emuleringsläge. Du kan aktivera det genom att ställa inLESS_IS_MOREmiljövariabel. Du kan bläddra uppåt imoreemuleringslä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ärview. 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
sed -n l filekan vara användbart.lessnågra tydliga fördelar jämfört med andra personsökarprogram sompg, eller går det bara ner till personliga preferenser?lesshar mer funktioner änpg. Ta en titt påless(1)ochpg(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.moreochmost!