system
(system)
10 Maj 2010 20:14
#1
Witam
Piszę a raczej próbuje napisać skrypt w bashu w połączeniu z awk. Na razie podstawy. Chce do awk przesłać listę plików i katalogów aby on mi sam ją podzielił na poszczególne kolumny. Znalazłem w internecie pętle która niby to umożliwia
#!/bin/bash
if [-d $1]
then
awk -vARG1=$1 'BEGIN{
i = 0
while(("ls -o " ARG1 "" | getline ) > 0)
{
print ($0)
getline ans < "-"
}
} #zakończenie begina
' #zakończenie awk
else
echo "Podano ścieżkę do katalogu, który nie istnieje"
fi
Podaję jako parametr folder, sprawdzam czy to na pewno folder, jeśli tak to chce wyświetlić po kolei linijki polecenia ls -o. Wiem że można to zrobić w inny sposób ale tu chodzi o to żeby zrobić to przez awk bo mi to posłuży w późniejszym kodzie.
Niestety podany sposób wyświetla mi puste linijki.
Wie ktoś co zrobić ?
Pozdrawiam
roobal
(roobal)
11 Maj 2010 02:34
#2
Pewnie, że można i to bez zbędnych kombinacji:
#!/bin/bashif [ -d $1 ]; then-o $1 | awk '{print $0}'else echo "Podano ścieżkę do katalogu, który nie istnieje"fi[/code]
Pozdrawiam!
system
(system)
11 Maj 2010 15:47
#3
Ok, to rozwiązanie działa.
Ale teraz jak już mam listę plików to chce w kodzie AWK stworzyć tablicę dwuwymiarową która bedzie zawierać informację o plikach
każdy z plików posiada następujące informacje - Nazwa - właściciel - rozmiar - typ
Ale ten podany kod wyżej każdą linijkę wczytuje osobno i kod awk wykonuje się od nowa. Jeśli zadeklaruje cokolwiek w kodzie to przy następnej linijce jest usuwane i tworzone na nowo więc moja tablica jest kasowana. Zmienna sterująca i =0 jest zerowana za każdym razem.
#!/bin/bash
if [-d $1]
then
ls -o $1 | awk -vA=$1 'BEGIN{
i = 0
if (NF > 2)
{
i++
tab[i,2] = $3
if(substr($1,1,1) == "-")
{
tab[i,1] = $4
tab[i,3] = "-"
tab[i,4] = $NF
}
else if(substr($1,1,1) == "d")
{
tab[i,3] ="d" ;
tab[i,4] = $NF;
}
else if(substr($1,1,1) == "l")
{
tab[i,1] = $4
tab[i,3] = "l"
tab[i,4] = $NF
}
}
close ("ls -o");
wypisz(i,A , tab);
}' #koniec begin i skryptu awk
Funkcję wypisz mam stworzoną jednak wyświetla ona pustą tablicę. Co zrobić żeby kod wewnątrz wczytywał kolejną linijkę ? W poprzednim przykładzie była pętla jednak nie działała. Tutaj też mogę dodać ale nie wiem jak wczytać kolejną linijkę polecenia ls już w tej pętli
roobal
(roobal)
12 Maj 2010 01:10
#4
Nie mam pojęcia czemu próbujesz wynaleźć koło jeszcze raz Przecież takie informacje uzyskasz bez takich kombinacji przy pomocy ls z odopowiednią opcją, mianowicie ls -l pokaże Ci to co chcesz osiągnąć a ls -la pokaże Ci również pliki ukryte, dla przykładu:
ls -l /etc/
razem 1700
-rw-r--r-- 1 root root 149 2009-07-14 03:25 00-header
drwxr-xr-x 4 root root 4096 2009-10-28 22:02 acpi
-rw-r--r-- 1 root root 2986 2009-10-28 21:55 adduser.conf
drwxr-xr-x 2 root root 4096 2010-03-07 10:14 akonadi
-rw-r--r-- 1 root root 64 2010-03-23 13:06 aliases
-rw-r--r-- 1 root root 12288 2010-03-23 13:06 aliases.db
drwxr-xr-x 2 root root 4096 2010-04-13 18:45 alternatives
-rw-r--r-- 1 root root 395 2009-09-17 21:32 anacrontab
drwxr-xr-x 6 root root 4096 2009-10-28 21:58 apm
drwxr-xr-x 2 root root 4096 2010-01-02 20:45 apparmor
drwxr-xr-x 7 root root 4096 2010-04-10 03:10 apparmor.d
drwxr-xr-x 4 root root 4096 2009-12-16 02:49 apport
drwxr-xr-x 5 root root 4096 2010-03-15 15:49 apt
-rw-r----- 1 root daemon 144 2009-09-15 15:09 at.deny
drwxr-xr-x 3 root root 4096 2009-11-24 04:12 avahi
-rw-r--r-- 1 root root 1754 2009-09-14 07:09 bash.bashrc
-rw-r--r-- 1 root root 219331 2009-10-05 18:37 bash_completion
drwxr-xr-x 2 root root 4096 2010-04-27 19:35 bash_completion.d
-rw-r--r-- 1 root root 344 2009-10-07 08:01 bindresvport.blacklist
-rw-r--r-- 1 root root 321 2009-10-22 23:54 blkid.conf
lrwxrwxrwx 1 root root 15 2009-11-07 02:31 blkid.tab -> /dev/.blkid.tab
drwxr-xr-x 2 root root 4096 2010-03-15 21:57 bluetooth
-rw-r--r-- 1 root root 7135 2009-06-05 23:54 bogofilter.cf
drwxr-xr-x 2 root root 4096 2009-10-28 22:01 bonobo-activation
-rw-r--r-- 1 root root 33 2009-10-28 22:04 brlapi.key
drwxr-xr-x 2 root root 20480 2010-01-31 11:36 brltty
-rw-r--r-- 1 root root 18624 2009-10-14 01:54 brltty.conf
drwxr-xr-x 2 root root 4096 2009-10-28 22:02 byobu
drwxr-xr-x 3 root root 4096 2009-10-28 21:55 ca-certificates
-rw-r--r-- 1 root root 6332 2009-10-28 21:55 ca-certificates.conf
drwxr-xr-x 2 root root 4096 2009-10-28 22:02 calendar
drwxr-s--- 2 root dip 4096 2009-10-28 22:02 chatscripts
drwxr-xr-x 2 root root 4096 2009-11-09 22:52 checkbox.d
drwxr-xr-x 2 root root 4096 2010-04-15 22:37 chromium-browser
drwxr-xr-x 4 root root 4096 2010-03-23 13:06 clamav
drwxr-xr-x 2 root root 4096 2009-10-28 22:02 compizconfig
drwxr-xr-x 2 root root 4096 2009-10-28 22:02 computer-janitor.d
drwxr-xr-x 4 root root 4096 2009-10-28 21:57 ConsoleKit
drwxr-xr-x 2 root root 4096 2009-11-07 02:40 console-setup
drwxr-xr-x 3 root root 4096 2009-10-28 22:00 console-tools
drwxrwxr-x 4 couchdb couchdb 4096 2009-10-28 22:02 couchdb
drwxr-xr-x 2 root root 4096 2009-10-28 22:02 cron.d
drwxr-xr-x 2 root root 4096 2010-03-30 18:41 cron.daily
drwxr-xr-x 2 root root 4096 2009-10-28 22:02 cron.hourly
drwxr-xr-x 2 root root 4096 2009-12-03 22:45 cron.monthly
-rw-r--r-- 1 root root 724 2009-09-15 15:12 crontab
drwxr-xr-x 2 root root 4096 2009-12-15 17:43 cron.weekly
-rw-r--r-- 1 root root 54 2009-10-28 22:06 crypttab
drwxr-xr-x 4 root lp 4096 2010-05-08 02:01 cups
-rw-r--r-- 1 root root 89 2009-12-15 17:43 cvs-cron.conf
-rw-r--r-- 1 root root 126 2009-12-15 17:43 cvs-pserver.conf
drwxr-xr-x 5 root root 4096 2009-10-28 22:01 dbus-1
-rw-r--r-- 1 root root 2969 2009-10-02 21:15 debconf.conf
-rw-r--r-- 1 root root 12 2010-03-28 00:34 debian_version
drwxr-xr-x 3 root root 4096 2010-03-30 18:41 default
drwxr-xr-x 4 root root 4096 2009-10-28 22:01 defoma
-rw-r--r-- 1 root root 600 2009-08-03 17:33 deluser.conf
drwxr-xr-x 2 root root 4096 2009-10-28 21:55 depmod.d
drwxr-xr-x 4 root root 4096 2010-01-28 11:20 dhcp3
drwxr-xr-x 2 root root 4096 2010-02-26 22:49 dictionaries-common
drwxr-xr-x 3 root root 4096 2009-10-28 21:58 doc-base
drwxr-xr-x 4 root root 4096 2010-03-13 18:19 dpkg
drwxr-xr-x 2 root root 4096 2010-02-26 00:02 elinks
drwxr-xr-x 3 root root 4096 2009-10-28 21:58 emacs
-rw-r--r-- 1 root root 79 2009-10-28 21:55 environment
drwxr-xr-x 2 root root 4096 2009-10-28 22:01 esound
drwxr-xr-x 2 root root 4096 2010-04-13 19:32 fbpanel
drwxr-xr-x 3 root root 4096 2009-10-28 21:58 firefox-3.0
drwxr-xr-x 4 root root 4096 2009-10-28 21:59 firefox-3.5
drwxr-xr-x 4 root root 4096 2009-10-28 21:57 fonts
drwxr-xr-x 3 root root 4096 2009-10-28 22:01 foomatic
-rw-r--r-- 1 root root 943 2010-02-09 17:48 fstab
-rw-r--r-- 1 root root 890 2009-11-07 02:43 fstab~
-rw-r----- 1 root fuse 216 2009-03-05 18:42 fuse.conf
-rw-r--r-- 1 root root 2689 2008-03-27 14:22 gai.conf
drwxr-xr-x 2 root root 4096 2009-10-28 22:05 gamin
drwxr-xr-x 6 root root 4096 2009-10-28 21:56 gconf
drwxr-xr-x 2 root root 4096 2009-10-28 22:02 gdb
drwxr-xr-x 6 root root 4096 2009-12-09 19:16 gdm
drwxr-xr-x 3 root root 4096 2009-10-28 21:59 gimp
drwxr-xr-x 3 root root 4096 2009-10-28 22:01 gnome
drwxr-xr-x 2 root root 4096 2009-10-28 22:02 gnome-app-install
drwxr-xr-x 3 root root 4096 2009-10-28 22:00 gnome-system-tools
drwxr-xr-x 3 root root 4096 2009-10-28 21:57 gnome-vfs-2.0
-rw-r--r-- 1 root root 10852 2007-04-28 04:27 gnome-vfs-mime-magic
drwxr-xr-x 2 root root 4096 2010-04-10 03:10 gre.d
drwxr-xr-x 2 root root 4096 2009-10-28 22:02 groff
-rw-r--r-- 1 root root 948 2010-04-07 03:29 group
-rw------- 1 root root 942 2010-04-07 03:29 group-
drwxr-xr-x 2 root root 4096 2010-04-13 00:55 grub.d
-rw-r----- 1 root shadow 790 2010-04-07 03:29 gshadow
-rw------- 1 root root 784 2010-04-07 03:29 gshadow-
drwxr-xr-x 2 root root 4096 2010-02-04 11:24 gtk-2.0
drwxr-xr-x 3 root root 4096 2009-10-28 21:59 hal
-rw-r--r-- 1 root root 4794 2009-10-06 22:36 hdparm.conf
-rw-r--r-- 1 root root 92 2009-04-27 11:56 host.conf
-rw-r--r-- 1 root root 7 2009-11-07 02:40 hostname
-rw-r--r-- 1 root root 252 2009-11-07 02:40 hosts
-rw-r--r-- 1 root root 579 2009-10-28 22:03 hosts.allow
-rw-r--r-- 1 root root 878 2009-10-28 22:03 hosts.deny
drwxr-xr-x 2 root root 4096 2009-10-28 22:01 hp
drwxr-xr-x 3 root root 4096 2009-10-28 22:00 ifplugd
-rw-r--r-- 1 root root 73 2010-03-30 18:41 inetd.conf
drwxr-xr-x 2 root root 4096 2010-04-15 22:36 init
drwxr-xr-x 2 root root 4096 2010-04-15 22:36 init.d
drwxr-xr-x 5 root root 4096 2009-10-28 21:56 initramfs-tools
-rw-r--r-- 1 root root 1721 2009-09-23 14:16 inputrc
drwxr-xr-x 3 root root 4096 2009-09-07 20:39 insserv
-rw-r--r-- 1 root root 885 2009-09-07 20:39 insserv.conf
drwxr-xr-x 2 root root 4096 2009-09-07 20:39 insserv.conf.d
drwxr-xr-x 2 root root 4096 2009-10-28 21:55 iproute2
-rw-r--r-- 1 root root 19 2009-10-20 02:04 issue
-rw-r--r-- 1 root root 12 2009-10-20 02:04 issue.net
drwxr-xr-x 3 root root 4096 2009-10-28 22:00 kbd
drwxr-xr-x 4 root root 4096 2010-04-27 19:35 kde3
drwxr-xr-x 3 root root 4096 2010-01-30 20:56 kde4
-rw-r--r-- 1 root root 89 2009-11-02 16:46 kde4rc
drwxr-xr-x 4 root root 4096 2009-10-28 22:00 kernel
-rw-r--r-- 1 root root 167 2009-11-07 02:42 kernel-img.conf
-rw-r--r-- 1 root root 1309 2009-09-24 13:28 kerneloops.conf
drwxr-xr-x 2 root root 4096 2009-10-28 22:06 keys
-rw-r--r-- 1 root root 1128 2009-07-17 23:45 ksysguarddrc
drwxr-xr-x 2 root root 4096 2010-03-10 01:18 kubuntu-default-settings
drwxr-xr-x 10 root root 4096 2009-10-28 22:02 laptop-mode
drwxr-xr-x 2 root root 4096 2009-10-28 21:56 ldap
-rw-r--r-- 1 root root 99516 2010-04-16 01:44 ld.so.cache
-rw-r--r-- 1 root root 34 2009-10-28 21:55 ld.so.conf
drwxr-xr-x 2 root root 4096 2010-01-20 19:50 ld.so.conf.d
-rw-r--r-- 1 root root 267 2009-07-08 21:36 legal
-rw-r--r-- 1 root root 3587 2009-10-13 22:30 lftp.conf
-rw-r--r-- 1 root root 20 2009-06-03 03:54 libao.conf
drwxr-xr-x 2 root root 4096 2009-11-27 21:00 libgda-4.0
drwxr-xr-x 2 root root 4096 2008-06-19 14:59 libpaper.d
-rw-r--r-- 1 root root 2570 2009-06-17 10:56 locale.alias
-rw-r--r-- 1 root root 2679 2010-04-07 22:42 localtime
drwxr-xr-x 3 root root 4096 2009-10-28 21:55 logcheck
-rw-r--r-- 1 root root 10783 2010-02-09 17:45 login.defs
-rw-r--r-- 1 root root 599 2009-08-20 06:51 logrotate.conf
drwxr-xr-x 2 root root 4096 2010-04-09 17:23 logrotate.d
drwxr-xr-x 2 root root 4096 2009-10-08 21:01 lsb-base
-rw-r--r-- 1 root root 3844 2009-10-08 16:36 lsb-base-logging.sh
-rw-r--r-- 1 root root 97 2009-10-20 01:44 lsb-release
-rw-r--r-- 1 root root 15752 2009-07-25 17:13 ltrace.conf
drwxr-xr-x 2 root root 4096 2010-02-26 02:32 lynx-cur
-rw-r--r-- 1 root root 111 2009-05-13 19:33 magic
-rw-r--r-- 1 root root 111 2009-05-13 19:33 magic.mime
-rw-r--r-- 1 root root 32582 2010-04-09 22:05 mailcap
-rw-r--r-- 1 root root 449 2009-09-09 09:35 mailcap.order
-rw-r--r-- 1 root root 125 2009-01-15 10:26 mail.rc
-rw-r--r-- 1 root root 5173 2009-09-07 12:18 manpath.config
drwxr-xr-x 2 root root 4096 2010-01-30 20:36 mc
drwxr-xr-x 2 root root 4096 2010-03-08 22:11 menu
drwxr-xr-x 2 root root 4096 2010-04-13 19:26 menu-methods
-rw-r--r-- 1 root root 22187 2009-09-09 09:35 mime.types
-rw-r--r-- 1 root root 801 2009-10-24 17:10 mke2fs.conf
drwxr-xr-x 2 root root 4096 2009-10-28 22:02 modprobe.d
-rw-r--r-- 1 root root 198 2010-01-29 13:47 modules
drwxr-xr-x 4 root root 4096 2009-10-28 22:05 mono
lrwxrwxrwx 1 root root 13 2009-11-07 02:31 motd -> /var/run/motd
-rw-r--r-- 1 root root 80 2009-10-28 21:55 motd.tail
drwxr-xr-x 2 root root 4096 2010-01-31 12:07 mplayer
-rw-r--r-- 1 root root 293 2009-06-14 21:31 mplayerplug-in.conf
-rw-r--r-- 1 root root 965 2009-06-14 21:31 mplayerplug-in.types
-rw-r--r-- 1 root root 700 2010-05-12 02:22 mtab
-rw------- 1 root roobal 0 2010-01-29 19:22 mtab.fuselock
-rw-r--r-- 1 root root 624 2009-04-29 18:04 mtools.conf
drwxr-xr-x 3 root root 4096 2010-02-11 12:10 mysql
-rw-r--r-- 1 root root 7670 2009-03-30 12:23 nanorc
-rw-r--r-- 1 root root 2064 2006-11-23 20:33 netscsid.conf
drwxr-xr-x 6 root root 4096 2009-11-21 22:16 network
drwxr-xr-x 4 root root 4096 2009-11-07 06:07 NetworkManager
-rw-r--r-- 1 root root 91 2009-04-27 11:56 networks
-rw-r--r-- 1 root root 513 2009-10-28 22:03 nsswitch.conf
drwxr-xr-x 2 root root 4096 2010-03-15 21:57 obex-data-server
drwxr-xr-x 2 root root 4096 2009-11-07 04:43 openal
drwxr-xr-x 2 root root 4096 2010-02-24 11:34 openoffice
-rw-r--r-- 1 root root 151 2009-11-20 20:19 operaprefs_default.ini
-rw-r--r-- 1 root root 53 2009-11-20 20:19 operaprefs_fixed.ini
drwxr-xr-x 5 root root 4096 2010-04-07 03:29 opt
drwxr-xr-x 2 root root 4096 2010-03-10 01:19 PackageKit
-rw-r--r-- 1 root root 552 2009-09-04 10:20 pam.conf
drwxr-xr-x 2 root root 4096 2010-04-15 22:37 pam.d
drwxr-xr-x 2 root root 4096 2009-10-28 21:58 pango
-rw-r--r-- 1 root root 3 2009-11-07 02:41 papersize
-rw-r--r-- 1 root root 1778 2010-04-07 03:29 passwd
-rw------- 1 root root 1728 2010-03-23 15:02 passwd-
drwxr-xr-x 2 root root 4096 2009-10-28 22:03 pcmcia
drwxr-xr-x 5 root root 4096 2009-11-10 15:29 perl
-rw-r--r-- 1 root root 194 2010-04-30 21:52 perlmonrc
drwxr-xr-x 5 root root 4096 2009-10-28 21:58 pm
-rw-r--r-- 1 root root 7649 2009-10-28 22:03 pnm2ppa.conf
drwxr-xr-x 2 root root 4096 2009-11-07 04:38 PolicyKit
drwxr-xr-x 4 root root 4096 2009-10-28 21:57 polkit-1
-rw-r--r-- 1 root root 350 2009-11-07 02:41 popularity-contest.conf
drwxr-xr-x 3 root root 4096 2010-02-18 17:18 postfix
drwxr-xr-x 4 root root 4096 2009-10-28 21:58 power
drwxr-xr-x 8 root dip 4096 2010-03-15 16:32 ppp
lrwxrwxrwx 1 root root 22 2010-03-07 10:14 printcap -> /var/run/cups/printcap
-rw-r--r-- 1 root root 497 2009-10-28 21:55 profile
drwxr-xr-x 2 root root 4096 2009-10-28 22:03 profile.d
-rw-r--r-- 1 root root 2626 2009-09-15 14:02 protocols
drwxr-xr-x 2 root root 4096 2010-01-28 11:20 pulse
drwxr-xr-x 2 root root 4096 2010-02-24 11:34 purple
drwxr-xr-x 2 root root 4096 2009-10-28 21:56 python
drwxr-xr-x 2 root root 4096 2010-01-22 11:40 python2.5
drwxr-xr-x 2 root root 4096 2009-12-16 02:48 python2.6
drwxr-xr-x 2 root root 4096 2010-02-18 17:18 qt3
drwxr-xr-x 2 root root 4096 2010-04-13 18:49 rc0.d
drwxr-xr-x 2 root root 4096 2010-04-13 18:49 rc1.d
drwxr-xr-x 2 root root 4096 2010-04-13 18:49 rc2.d
drwxr-xr-x 2 root root 4096 2010-04-13 18:49 rc3.d
drwxr-xr-x 2 root root 4096 2010-04-13 18:49 rc4.d
drwxr-xr-x 2 root root 4096 2010-04-13 18:49 rc5.d
drwxr-xr-x 2 root root 4096 2010-04-13 18:49 rc6.d
-rwxr-xr-x 1 root root 306 2009-10-28 21:55 rc.local
drwxr-xr-x 2 root root 4096 2010-03-07 10:14 rcS.d
drwxr-xr-x 3 root root 4096 2009-10-28 21:58 resolvconf
-rw-r--r-- 1 root root 55 2010-05-12 02:22 resolv.conf
-rwxr-xr-x 1 root root 268 2009-04-29 20:25 rmt
-rw-r--r-- 1 root root 887 2009-09-15 14:02 rpc
-rw-r--r-- 1 root root 1228 2009-11-05 12:33 rsyslog.conf
drwxr-xr-x 2 root root 4096 2010-02-18 17:18 rsyslog.d
drwxr-xr-x 2 root root 4096 2010-05-12 02:22 samba
drwxr-xr-x 3 root root 4096 2009-10-28 22:03 sane.d
drwxr-xr-x 2 root root 4096 2010-02-05 17:54 screenlets
-rw-r--r-- 1 root root 3663 2009-07-06 07:36 screenrc
-rw-r--r-- 1 root root 1018 2009-07-31 15:55 securetty
drwxr-xr-x 2 root root 4096 2009-10-28 21:55 security
-rw-r--r-- 1 root root 71449 2009-03-05 18:52 sensors3.conf
-rw-r--r-- 1 root root 85602 2009-04-29 15:41 sensors.conf
-rw-r--r-- 1 root root 18832 2009-09-15 14:02 services
drwxr-xr-x 3 root root 4096 2010-02-24 11:34 sgml
-rw-r----- 1 root shadow 1200 2010-04-07 03:29 shadow
-rw------- 1 root root 1172 2010-03-23 15:02 shadow-
-rw-r--r-- 1 root root 192 2010-02-09 17:45 shells
drwxr-xr-x 2 root root 4096 2009-10-28 22:02 skel
-rw-r--r-- 1 root root 1156 2009-05-18 14:27 smi.conf
drwxr-xr-x 3 root root 4096 2009-10-28 21:57 sound
drwxr-xr-x 4 root root 4096 2009-10-28 22:03 speech-dispatcher
drwxr-xr-x 2 root root 4096 2009-10-28 22:02 ssh
drwxr-xr-x 4 root root 4096 2010-01-20 19:51 ssl
-r--r----- 1 root root 557 2009-11-07 02:40 sudoers
-rw-r--r-- 1 root root 19 2008-11-17 16:16 su-to-rootrc
-rw-r--r-- 1 root root 2277 2009-09-15 23:46 sysctl.conf
drwxr-xr-x 2 root root 4096 2010-03-18 14:40 sysctl.d
drwxr-xr-x 2 root root 4096 2009-10-28 21:55 terminfo
drwxr-xr-x 4 root root 4096 2009-12-05 20:59 thunderbird
-rw-r--r-- 1 root root 14 2010-04-07 22:42 timezone
drwxr-xr-x 2 root root 4096 2009-11-07 04:21 timidity
-rw-r--r-- 1 root root 645 2009-05-02 01:31 ts.conf
-rw-r--r-- 1 root root 1260 2008-05-30 08:22 ucf.conf
drwxr-xr-x 3 root root 4096 2009-11-09 22:52 udev
drwxr-xr-x 3 root root 4096 2009-10-28 22:02 ufw
-rw-r--r-- 1 root root 248 2009-04-29 10:34 updatedb.conf
drwxr-xr-x 3 root root 4096 2009-11-09 22:52 update-manager
drwxr-xr-x 2 root root 4096 2009-11-09 22:51 update-motd.d
drwxr-xr-x 2 root root 4096 2009-10-15 18:29 update-notifier
-rw-r--r-- 1 root root 116 2009-11-07 02:41 usplash.conf
drwxr-xr-x 2 root root 4096 2009-12-17 14:45 vbox
drwxr-xr-x 2 root root 4096 2009-11-07 04:43 vga
drwxr-xr-x 2 root root 4096 2009-10-28 21:55 vim
drwxr-xr-x 3 root root 4096 2010-01-22 11:42 vlc
drwxr-xr-x 2 root root 4096 2009-10-28 22:02 w3m
-rw-r--r-- 1 root root 4221 2009-10-06 17:12 wgetrc
-rw------- 1 root root 719 2010-03-16 23:01 wifi-radar.conf
drwxr-xr-x 2 root root 4096 2009-11-07 04:21 wildmidi
drwxr-xr-x 2 root root 4096 2010-02-02 18:54 wine-doors
drwxr-xr-x 2 root root 4096 2010-02-08 18:27 wireshark
-rw-r--r-- 1 root root 1343 2007-01-09 19:39 wodim.conf
drwxr-xr-x 2 root root 4096 2009-10-28 22:03 wpa_supplicant
drwxr-xr-x 10 root root 4096 2010-04-13 18:45 X11
drwxr-xr-x 10 root root 4096 2010-04-16 01:02 xdg
drwxr-xr-x 2 root root 4096 2009-10-28 22:01 xml
drwxr-xr-x 2 root root 4096 2010-04-10 03:10 xulrunner-1.9.1
Kolumna pierwsza - prawa do pliku oraz rodzaj pliku (d oznacza katalog directory, l - dowiązanie itd.), kolumna druga - właściciel, kolumna trzecia - grupa, kolumna czwarta nazwa pliku lub katalogu. Oprócz tego są inne informacje, więc przez Awk przepuszczasz tylko to co Ciebie interesuje a Grepem możesz dodatkowo filtrować. Czyli całość wyglądałaby tak, wg twoich potrzeb:
#!/bin/bash
if [ -d $1 ]; then
ls -l $1 | awk -F" " '{ print "Nazwa: " $8 "\tWłaściel: " $4 "\tRozmiar: " $2 "\tTyp: " $1 }'
else
echo "Podany katalog nie istanieje."
fi[/code]
Tak poza tym w twoim kodzie w Awk mogłeś użyć jeszcze END. Co prawda ls -l daje Tobie na starcie to co chcesz osiągnąć przy pomocy Awk wyświetlasz tylko co Ciebie najbardziej interesuje ale jeśli jednak chcesz osiągnąć coś innego to proponuję zapytać na forum.linux.pl tam jest kilku speców od skryptów Basha tam szybciej znajdziesz lepszą odpowiedź, ja aż tak zaawansowany w Bashu nie jestem
Pozdrawiam!
system
(system)
12 Maj 2010 17:45
#5
To na studiach każą mi wynaleźć koło jeszcze raz. Dla rozjaśnienia wkleję treść zadania. Żeby nie było od razu mówię że nie szukam gotowych rozwiązań.
Lista zajętościowa katalogu
Dla zadanego katalogu drukować listę plików i podkatalogów posortowanych w porządku malejącym w/g zajętości. Dla pliku jako zajętość przyjmować rozmiar własny, dla podkatalogu - sumę rozmiarów wszystkich plików zawartych w jego gałęzi.
Format drukowanej listy plików:
W powyższym wydruku jest w przypadku pliku nie będącego katalogiem, właścicielem pliku, a w przypadku katalogu - posiadaczem plików o największej zajętości w tym katalogu. jest litera: ``d'' dla katalogu, ``-'' dla zwykłego pliku, ``l'' - dla skrótu (dowiązania symbolicznego) itp.
Pod listą zajętościową plików wydrukować podsumowanie:
sumaryczną zajętość plików w danym katalogu oraz w jego podkatalogach,
listę sumarycznych zajętości plików w danym katalogu oraz w jego podkatalogach w rozbiciu na poszczególnych użytkowników.
Uwaga: przy rekurencyjnym przeglądaniu katalogów nie brać pod uwagę dowiązań symbolicznych.