programmera.net -> linux -> normal     för utskrift      info@programmera.net

Visa innehåll i textfiler

  Kommando    Exempel  Beskrivning
  cat  cat a.txt  Skriver ut filen a.txt på skärmen.
  tac  tac a.txt  Skriver ut raderna underifrån och upp från a.txt.
  more  more a.txt  Skriver ut filen a.txt på skärmen en sida i taget.
  less  less a.txt  Skriver ut filen a.txt på skärmen en sida i taget.
  head  head -50 a.txt  Skriver ut de 50 första raderna i a.txt.
  tail  tail -100f a.txt  Skriver ut de 100 sista raderna i a.txt, och fortsätter skriva ut eventuella nya rader.

På denna sida beskrivs kommandon med vilka man kan visa innehållet i textfiler. Ett gemensamt drag för dessa kommandon är att de inte förändrar den fil de använder sig av, de skriver bara ut något på skärmen. Om du vill spara t. ex. en sorterad fil använder du högerpilen (större än) för att få resultatet att hamna i en ny fil:
[olle@dev1]$ sort a.txt > b.txt
Kommandot ovan sparar den sorterade versonen av a.txt i b.txt.


cat

Flagga  Betydelse  Beskrivning
cat -A a.txt  all  Samma som -ETv.
cat -b a.txt  number nonblank  Numrerar de icke tomma raderna (som nl).
cat -E a.txt  end  Visar radslut som $.
cat -n a.txt  number  Numrerar raderna.
cat -T a.txt  tab  Visar tabbar som ^I.
cat -v a.txt  visual  Visar andra icke synliga tecken.

Kommandot cat är det vanligaste kommandot för att visa en textfils innehåll på skärmen, och för att skapa korta filer. Man tycker kanske att print borde vara ett bättre namn, men cat står för concaternate vilket betyder länka samman. Om du skriver:
[olle@dev1]$ cat a.txt b.txt
så förstår du varför. cat skriver nämligen ut alla rader i fil a.txt och fortsätter sedan direkt med att skriva ut raderna i fil b.txt. Om du vill slå ihop a.txt och b.txt till en ny fil c.txt skriver du följande:
[olle@dev1]$ cat a.txt b.txt > c.txt
Det finns ett finurligt sätt att skapa en ny textfil i LINUX. Det gör man genom att inte specifiera den fil som ska skrivas ut, bara den som ska skapas.
[olle@dev1]$ cat > c.txt
hej alla 
glada
Ctrl+d
Du avslutar inmatningen med Ctrl+d (håll ner Ctrl och d samtidigt), vilket betyder END OF FILE i LINUX. Din nya fil ser ut såhär:
[olle@dev1]$ cat c.txt
hej alla 
glada
Du kan lägga till mer text i c.txt genom:
[olle@dev1]$ cat >> c.txt
katter
Ctrl+d
Nu ser c.txt ut såhär:
[olle@dev1]$ cat c.txt
hej alla
glada
katter
Som du ser behöver du inte kunna något mer kommando än cat, eftersom det både kan skriva ut och skapa filer.
tac

Kommandot tac är cat baklänges. Den skriver nämligen också ut filer men uppochner.
[olle@dev1]$ tac c.txt
katter
glada
hej alla

more

Problemet med cat är att man inte hinner läsa filen om den är större än att hela filen syns på skärmen. I de fall man vill läsa en fil kan man använda kommandot more. När man väl har startat more navigerar man upp och ned i filen med följande kommandon:

Kommandon Beskrivning
Mellanslag  Hoppa ner en sida.
b  Hoppa tillbaka en sida.
/foo  Sök efter ordet foo. Sökordet kan vara ett reguljärt uttryck.
n  Sök efter nästa förekomst av senaste reguljära uttryck.
q  Avsluta more.

Om man inte kommer att man ska trycka på q för att komma ur more kan man ju alltid trycka Ctrl+c.
less

Flagga  Betydelse  Beskrivning
less -S a.txt     Raderna bryts inte, även om den inte får plats. Låga rader försvinner alltså ur skärmen.

less fungerar som more, d.v.s. skriver ut en sida i taget, men har ett utökat utbud av kommandon. Kommandona är nästan identiska med de som används i vi. less öppnar snabbt stora filer eftersom den inte behöver läsa hela filen innan första sidan visas. Nu listar jag de kommandon som används för att ta sig runt i filen:

Kommandon Beskrivning
Mellanslag  Hoppa ner en sida.
b  Hoppa tillbaka en sida.
g  Hoppa till första raden.
17g  Hoppa till rad 17.
G  Hoppa till sista raden.
17%  Hoppa till 17% av filen.
pil ner  Hoppa ner en rad.
pil upp  Hoppa upp en rad.
pil höger  Hoppa en tab till höger (Om du startat less med -S flaggan).
pil vänster  Hoppa en tab till vänster (Om du startat less med -S flaggan).

Nedan har vi en lista på övriga kommandon:

Kommandon Beskrivning
/foo  Sök nedåt i filen efter första förekomsten av foo.
?foo  Sök uppåt i filen efter första förekomsten av foo.
n  Sök efter nästa förekomst av senaste reguljära uttryck.
N  Sök i motsatt riktning efter nästa förekomst av senaste reguljära uttryck.
q  Avsluta less.
v  Starta vi för att editera filen. Skriv :q för att hoppa ur vi.
=  En statusrad ploppar upp som visar var man befinner sig i filen.

Om man inte kommer på att man ska trycka på q för att komma ur less kan man ju alltid trycka Ctrl+c.
head

Flagga  Betydelse  Beskrivning
head -50 a.txt     Visar de 50 första raderna i a.txt.

Detta kommando skriver ut de 10 första raderna i en fil. Ofta arbetar man med stora filer, då finns det ingen vits med att använda cat, eftersom cat inte väntar utan fortsätter att skriva ut hela filen utan att du hinner läsa något. Du kan välja att se ett annat antal rader än 10 genom att skriva minus och antalet rader. Om du bara vill se 2 rader kan du skriva:
[olle@dev1]$ head -2 c.txt
hej alla
glada

tail

Flagga  Betydelse  Beskrivning
tail -50 a.txt     Visar de 50 sista raderna i a.txt.
tail -50f a.txt  follow  Visar de 50 sista raderna i a.txt och alla nya rader när filen växer.

Tail fungerar som head men tvärt om. Här skriver man ut de sista raderna i en fil. Du kan på samma sätt som i head bestämma antalet rader med minus och ett tal.
[olle@dev1]$ tail -2 c.txt
glada
katter
tail används framför allt till att titta på slutet av loggfiler för att se de senaste händelserna. Ofta kan det vara bra att tail skriver ut nya rader samtidigt som de skrivs in i loggfilen. Detta görs med flaggan -f (=follow). Om du t. ex. alltid vill se de 50 senaste raderna i c.txt skriver du:
[olle@dev1]$ tail -50f c.txt
hej alla
glada
katter
Ctrl+C
Som du ser kommer inte prompten tillbaka förrän du avslutar kommandot genom Ctrl+C. Om någon annan process skriver till filen c.txt innan du avbryter med Ctrl+C kommer du se de nya raderna dyka upp på skärmen.