Sortera de tio största filerna överst

Aluhuru
Inlägg: 34
Blev medlem: 26 apr 2007, 18:46
OS: PCLinuxOS
Ort: Hallstahammar

Sortera de tio största filerna överst

Inlägg av Aluhuru »

Hejsan!
Hur kan jag med hjälp av sort & head-kommandot fixa så att de 10 största filerna kan listas i terminalen?

Aluhuru
Användarvisningsbild
mcNisse
Inlägg: 5211
Blev medlem: 06 feb 2007, 20:51
OS: Debian
Utgåva: Vet inte/ingen utgåva passar

SV: Sortera de tio största filerna överst

Inlägg av mcNisse »

ls -l | sort -rnk5 | head 10
KDE 4.5 SC är ute i det fria!!! Tjoho

Stagnation is good for nobody - after all if you don't progress you end up with gnome
Användarvisningsbild
mcNisse
Inlägg: 5211
Blev medlem: 06 feb 2007, 20:51
OS: Debian
Utgåva: Vet inte/ingen utgåva passar

SV: Sortera de tio största filerna överst

Inlägg av mcNisse »

Om du menar i filsystemet, kanske detta fungerar. Byt ut / mot därifrån du vill leta.

find / -type f -print0 | xargs -0 ls -l | sort -nrk5 | head -20
KDE 4.5 SC är ute i det fria!!! Tjoho

Stagnation is good for nobody - after all if you don't progress you end up with gnome
Aluhuru
Inlägg: 34
Blev medlem: 26 apr 2007, 18:46
OS: PCLinuxOS
Ort: Hallstahammar

SV: Sortera de tio största filerna överst

Inlägg av Aluhuru »

Tackar - löste sig genom att jag förkortade bort på ditt sista find / fram till xargs -0
så att det bara stod ls -l | sort -nrk5 | head -10

Tusen tack! Bash-script tycker inte jag är så lätt att lära sig, men när man väl behärskar det går det jättebra, synd bara att jag fortfarande inte har fått grepp om sed och egrep.

//Aluhuru
Aluhuru
Inlägg: 34
Blev medlem: 26 apr 2007, 18:46
OS: PCLinuxOS
Ort: Hallstahammar

Sed

Inlägg av Aluhuru »

Tänkte ta upp ett annat problem som jag har (dumt att bara starta en [ny/u]tråd för det).
Det handlar då om sed och ska följa den här modellen: '/någonting/s/någonting/någonting/g'
Själva problemet handlar om att jag inte vet hur jag ska kunna ersätta ett ord med ett annat i en textfil, om bara andra tecknet på en rad matchar en viss sträng.  :-\

Det vore snällt om någon kunde ge mig en vägledning på detta.  :-[

//Aluhuru
Användarvisningsbild
mcNisse
Inlägg: 5211
Blev medlem: 06 feb 2007, 20:51
OS: Debian
Utgåva: Vet inte/ingen utgåva passar

SV: Sortera de tio största filerna överst

Inlägg av mcNisse »

Kan du beskriva vad du vill byta ut?

Jag kan visa ett enkelt exemel, detta byter ut alla o mot e (g ser till att alla förekomster byts, prova utan g och se skillnaden)

Kod: Markera allt

(echo bar;echo foo;echo foobar) | sed "s/o/e/g"
KDE 4.5 SC är ute i det fria!!! Tjoho

Stagnation is good for nobody - after all if you don't progress you end up with gnome
Aluhuru
Inlägg: 34
Blev medlem: 26 apr 2007, 18:46
OS: PCLinuxOS
Ort: Hallstahammar

SV: Sortera de tio största filerna överst

Inlägg av Aluhuru »

Hej
Som svar då kan jag ange:

Att alla 'b' i en fil ska bytas ut till append bara om den andra tecknet på raden är ett 'a'.
SOm du såg ska jag vad jag förstår använda någon form av sträng innan /s/
Användarvisningsbild
mcNisse
Inlägg: 5211
Blev medlem: 06 feb 2007, 20:51
OS: Debian
Utgåva: Vet inte/ingen utgåva passar

SV: Sortera de tio största filerna överst

Inlägg av mcNisse »

Detta tror jag skulle fungera. Sed blir för jobbigt. Perl kanske skulle vara klara det bättre.
Byter även b innan a. Är det ett problem får du göra en substräng som du substitiuerar i...

Kod: Markera allt

awk '/^.a/ {gsub("b", "append"); print $0; next} {print $0}'
KDE 4.5 SC är ute i det fria!!! Tjoho

Stagnation is good for nobody - after all if you don't progress you end up with gnome
Lars
Inlägg: 6191
Blev medlem: 14 jan 2007, 19:31
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Ort: Stockholm

SV: Sortera de tio största filerna överst

Inlägg av Lars »

Jag tänkte också awk först, men en lösning med sed är faktiskt enklare:

Kod: Markera allt

sed "/^.a/ s/b/append/g"
Användarvisningsbild
mcNisse
Inlägg: 5211
Blev medlem: 06 feb 2007, 20:51
OS: Debian
Utgåva: Vet inte/ingen utgåva passar

SV: Sortera de tio största filerna överst

Inlägg av mcNisse »

Den var vacker. :)
Funkar sed som awk? Det har en match och sedan en liten programsnutt. Lägger man kommandon på nya rader eller kan man använda cpkolon; mellan kommandon?
KDE 4.5 SC är ute i det fria!!! Tjoho

Stagnation is good for nobody - after all if you don't progress you end up with gnome
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

SV: Sortera de tio största filerna överst

Inlägg av Konservburk »

mcNisse skrev: Funkar sed som awk? Det har en match och sedan en liten programsnutt. Lägger man kommandon på nya rader eller kan man använda cpkolon; mellan kommandon?
Du kan ha kommandona på varsin rad:

Kod: Markera allt

sed '
s/a/b/
s/x/y/
' <fil
... eller med kolon mellan dem:

Kod: Markera allt

sed 's/a/b/;s/x/y/' <fil
... eller uppdelade på samma rad:

Kod: Markera allt

sed -e 's/a/b/' -e 's/x/y/' <fil
Skriv svar

Återgå till "För nybörjaren - inaktuell"