Sida 1 av 1

Bash-nybörjare -vill ha radbryt i textfil och fixa en batfil

Postat: 24 jan 2011, 15:25
av jlw
Jag försöker lära mig bash

Jag håller på och försöker förstå hur det fungerar med "batch"
jag har installerat cygwin och sitter nu och exprimenterar lite.

Om jag skriver i en editor:
du -sh * > "C:\Program Files\programfiles.txt"

Då skapas en fil med mapparna som visar deras storlek i MB,
men jag vill ha de sorterade minst till störst.

Sedan undrar jag om jag kan göra en bat fil i windows på samma sätt?

Jag har gjort en bat fil:
@echo off
dir "C:\Program Files" > C:\files.txt


Och sparade den som "listprograms.bat" och när man klickar på den
så skapas en textfil med de mappar som finns i "Program Files".

Men jag kan inte få det sorterat, har försökt med " /o-s"

Som sagt jag är helt ny på detta område och jag blandar troligtvis ihop begreppen,
men om någon vänlig själ orkar att visa mig i rätt riktning så skulle jag bli tacksam.

Re: Bash-nybörjare -vill ha radbryt i textfil och fixa en ba

Postat: 24 jan 2011, 16:25
av mcNisse
jlw skrev:du -sh * > "C:\Program Files\programfiles.txt"
Flaggan h är inte bra om du vill ha dem sorterade i storleksordning eftersom du får en massa olika enheter på storleken.

Testa det här istället. Jag har valt enheten kilobytes och sorterar på kolumn 1 numeriskt.

Kod: Markera allt

du -sk * | sort -nk1 > fil

Re: Bash-nybörjare -vill ha radbryt i textfil och fixa en ba

Postat: 24 jan 2011, 16:40
av Konservburk
mcNisse skrev:Flaggan h är inte bra om du vill ha dem sorterade i storleksordning eftersom du får en massa olika enheter på storleken.
Det där klarar sort av numera med flaggan -h istället för -n:

Kod: Markera allt

du -sh -- * | sort -hk1

Re: Bash-nybörjare -vill ha radbryt i textfil och fixa en ba

Postat: 24 jan 2011, 18:49
av Urban Anjar
BAT filer i Windows och bash-script är snarlikt på ett plan; du samlar ett gäng kommandon i en fil och så kan du köra hela rasket som ett program.

Men språken är olika och jag tycker i alla fall att bash är väldigt mycket kraftfullare.

Dock finns cygwin och dessutom ett antal gnu-verktyg som kan köras i Windows och det kan rädda situationen att ha tillgång till sed eller awk exempelvis också i Windows.

Sen har ju MS släppt PowerShell, som ska vara bra mycket kraftfullare än den gamla kommandotolken, men jag må erkänna att jag inte hunnit grotta ner mig i det.

Re: Bash-nybörjare -vill ha radbryt i textfil och fixa en ba

Postat: 24 jan 2011, 18:59
av Urban Anjar
Radbryt får du i Linux med \n i vissa lägen. Windows vill nog ha \r\n (tror jag). Exempel:

Kod: Markera allt

#!/bin/bash
echo -e 'en rad \nnästa rad'
ger resultatet...

Kod: Markera allt

en rad 
nästa rad