programmera.net -> linux -> normal för utskrift | info@programmera.net |
Kommandon på textfiler
|
På denna sida beskrivs kommandon som opererar på 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:
Kommandot ovan sparar den sorterade versonen av a.txt i b.txt. [olle@dev1]$ sort a.txt > b.txt
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. |
[olle@dev1]$ cat a.txt b.txt |
[olle@dev1]$ cat a.txt b.txt > c.txt |
[olle@dev1]$ cat > c.txt hej alla glada Ctrl+d |
[olle@dev1]$ cat c.txt hej alla glada |
[olle@dev1]$ cat >> c.txt katter Ctrl+d |
[olle@dev1]$ cat c.txt hej alla glada katter |
[olle@dev1]$ tac c.txt katter glada hej alla |
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. |
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. |
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). |
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. |
Flagga | Betydelse | Beskrivning | ||
---|---|---|---|---|
head -50 a.txt | Visar de 50 första raderna i a.txt. |
[olle@dev1]$ head -2 c.txt hej alla glada |
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. |
[olle@dev1]$ tail -2 c.txt glada katter |
[olle@dev1]$ tail -50f c.txt hej alla glada katter Ctrl+C |
Flagga | Betydelse | Beskrivning | ||
---|---|---|---|---|
sort -i a.txt | ignore | Ignorerar alla bokstäver utanför ASCII-området. | ||
sort -n a.txt | numerical | Sorterar numeriskt. | ||
sort -r a.txt | reverse | Sorterar i bakvänd ordning. |
[olle@dev1]$ cat > x.txt a b c 1 2 3 10 11 |
[olle@dev1]$ sort x.txt 1 10 11 2 3 a b c |
[olle@dev1]$ sort -n x.txt a b c 1 2 3 10 11 |
Flagga | Betydelse | Beskrivning | ||
---|---|---|---|---|
uniq -c a.txt | count | Skriver ut alla unika rader med en siffra framför som indikerar antal förekomster av raden. | ||
uniq -d a.txt | duplicated | Skriver bara ut de rader som förekommer mer är en gång. | ||
uniq -i a.txt | ignore case | Tar inte hänsyn till stora och små bokstäver. |
[olle@dev1]$ uniq -c c.txt 1 hej alla 1 glada 1 katter |
[olle@dev1]$ cat >> c.txt katter Ctrl+d |
[olle@dev1]$ uniq -c c.txt 1 hej alla 1 glada 2 katter |
[olle@dev1]$ cat >> c.txt glada Ctrl+d |
[olle@dev1]$ cat c.txt hej alla glada katter katter glada |
[olle@dev1]$ uniq c.txt hej alla glada katter glada |
Flagga | Betydelse | Beskrivning | ||
---|---|---|---|---|
nl -i2 a.txt | increment | Ändra inkrementeringen till 2 (default 1). | ||
nl -v2 a.txt | Ändra startnumret till 2(default 1). | |||
nl -s"," a.txt | Ändra tecknet mellan siffran och raden till komma (default mellanslag). | |||
nl -nrn a.txt | right | Flyttar siffran till höger (default). | ||
nl -nln a.txt | left | Flyttar siffran till vänster. | ||
nl -nrz a.txt | zero | Lägger till inledande nollor i siffran. |
[olle@dev1]$ nl c.txt 1 hej alla 2 glada 3 katter |
Flagga | Betydelse | Beskrivning | ||
---|---|---|---|---|
wc -c a.txt | char | Räknar tecken i a.txt. | ||
wc -l a.txt | line | Räknar rader i a.txt. | ||
wc -w a.txt | word | Räknar ord i a.txt. |
[olle@dev1]$ wc c.txt 3 4 22 c.txt |
[olle@dev1]$ wc -w c.txt 4 c.txt |
[olle@dev1]$ cat c.txt | wc -w 4 |
Flagga | Betydelse | Beskrivning | ||
---|---|---|---|---|
fmt -w10 a.txt | width | Skriver ut a.txt med en bredd på 10 tecken. | ||
fmt -s a.txt | split only | Delar långa rader men lägger inte ihop korta rader till längre. | ||
fmt -u a.txt | uniform spacing | Ser till att det är endast ett mellanslag mellan orden och två mellan meningar. |
[olle@dev1]$ fmt c.txt hej alla glada katter |
Flagga | Betydelse | Beskrivning | ||
---|---|---|---|---|
cat a.txt | tr -d '\n' | delete | Raderar alla radbrytningar. |
[olle@dev1]$ cat c.txt | tr [:lower:] [:upper:] HEJ ALLA GLADA KATTER |
Flagga | Betydelse | Beskrivning | ||
---|---|---|---|---|
sed 's/foo/x/' a.txt | Skriver ut a.txt med den första förekomsten av foo på varje rad ersatt med x. | |||
sed -e 's/foo/x/g' -e 's/boo/y/g' a.txt | expression | Skriver ut a.txt med alla foo utbytta mot x och alla boo utbytta mot y. | ||
sed -f commands.txt a.txt | file | Skriver ut a.txt med alla substitutioner som listas i filen commands.txt. |
[olle@dev1]$ sed 's/le/xx/g' c.txt hej alxx gxxda katter |
[olle@dev1]$ sed 's/a/x/' c.txt hej xlla glxda kxtter |
Flagga | Betydelse | Beskrivning | ||
---|---|---|---|---|
cut -f1,3 a.txt | field | Skriv ut kolumn 1 och 3 från a.txt. | ||
cut -d"," -f2 a.txt | delimiter | Skriv ut kolumn 2, där kolumnerna separeras av kommatecken. | ||
cut -c1,3 a.txt | char | Skriv ut bokstav nummer 1 och 3 från varje rad i a.txt. | ||
cut -c2-8 a.txt | char | Skriv ut bokstäverna nummer 2 till 8 från varje rad i a.txt. | ||
cut -c17- a.txt | char | Skriv ut bokstäverna från 17 och framåt från a.txt. |
[olle@dev1]$ cat > d.txt Adam Adamson 1945 Björn Björnsson 1966 Cesar Cesarsson 1977 Ctrl+d |
[olle@dev1]$ cut -f3 d.txt 1945 1966 1977 |
[olle@dev1]$ cut -f2,3 d.txt Adamson 1945 Björnsson 1966 Cesarsson 1977 |
[olle@dev1]$ cut -c1-3 d.txt Ada Bjö Ces |
[olle@dev1]$ cut -d":" -f1 /etc/passwd root bin ... olle |
Flagga | Betydelse | Beskrivning | ||
---|---|---|---|---|
paste a.txt b.txt | Skriv ut a.txt och b.txt rad för rad separerade av tab. | |||
paste -d"," a.txt b.txt | delimiter | Skriv ut a.txt och b.txt rad för rad separerade av komma. |
[olle@dev1]$ cat > e.txt a b c Ctrl+d [olle@dev1]$ cat > f.txt 1 2 3 Ctrl+d |
[olle@dev1]$ paste e.txt f.txt a 1 b 2 c 3 |
[olle@dev1]$ paste -d"," e.txt f.txt a,1 b,2 c,3 |
Flagga | Betydelse | Beskrivning | ||
---|---|---|---|---|
join a.txt b.txt | Skriv ut a.txt och b.txt rad för rad där första kolumnen i båda filerna matchar varandra. | |||
join -t':' a.txt b.txt | Som ovan men kolumnerna i a.txt och b.txt är separerade av kolon. | |||
join -a1 a.txt b.txt | add | Skriv ut de matchande raderna plus de rader i a.txt som inte matchar någon rad från b.txt. | ||
join -v1 a.txt b.txt | Skriv ut de rader i a.txt som inte matchar någon rad i b.txt. | |||
join -o 1.2 2.5 a.txt b.txt | output | Skriv ut kolumn 2 från a.txt och kolumn 5 från b.txt från de matchande raderna. | ||
join -1 2 -2 5 a.txt b.txt | Skriv ut de rader där kolumn 2 från a.txt matchar kolumn 5 från b.txt. |
[olle@dev1]$ cat > g.txt 1 Adam 2 Bertil 3 Cesar 4 David Ctrl+d [olle@dev1]$ cat > h.txt 1 a 2 b 4 d 7 g Ctrl+d |
[olle@dev1]$ join g.txt h.txt 1 Adam a 2 Bertil b 4 David d |
[olle@dev1]$ join h.txt g.txt 1 a Adam 2 b Bertil 4 d David |
[olle@dev1]$ cat > i.txt 1 a 7 g 2 b 4 d |
[olle@dev1]$ join g.txt i.txt 1 Adam a |
[olle@dev1]$ join -a1 g.txt h.txt 1 Adam a 2 Bertil b 3 Cesar 4 David d |
[olle@dev1]$ join -v1 g.txt h.txt 3 Cesar |
[olle@dev1]$ join -o 1.2 2.2 g.txt h.txt Adam a Bertil b David d [olle@dev1]$ join -o 2.2 1.2 1.1 g.txt h.txt a Adam 1 b Bertil 2 d David 4 |