Package: coreutils
Version: 5.96-5
Severity: wishlist

Typical problem: suppose we want to parse 'ls -l' to get file sizes. 
The 'ls -l' file size field is right justified, separated by spaces,
and its rightmost columnar position depends on the width of the user
and group names.  Example:

    # file size (0 in this case) for 'user.log' ends at 
    # column 25.
    % ls -l /var/log/clamav/clamav.log /var/log/user.log
    -rw-r----- 1 clamav adm 0 Jul 16 07:44 /var/log/clamav/clamav.log
    -rw-r----- 1 root   adm 0 Jul 21 08:09 /var/log/user.log

    # same file, but now it ends at column 23.
    % ls -l /var/log/user.log
    -rw-r----- 1 root adm 0 Jul 21 08:09 /var/log/user.log

No option in 'cut' can handle that:

    1) changing the field separator won't work, because the
       number of spaces in 'ls -l' can vary with file size.
    2) fixed columnar positions won't work, because the columnar
       position in 'ls -l' varies with the width of the user and 
       group names.

It'd be easier if 'cut' had an option to handle white space like the
shell's positional parameters.  Here's how to cut the file size field
using any Bourne compatible shell:

        # print the 5th field.
        cd foo; ls -l | while read x ; do set - $x ; echo $5 ; done
    
So, it'd be nice there was a '-p' (for positional parameters) option
for 'cut'.  Suggested usage:

        cd foo; ls -l | cut -p -f 5

If '-p' is too unmemorable, perhaps '-w' for "whitespace".

NB:  'ls -l' is just a familiar example -- of course there are
other ways to get file sizes that work with the current version of
'cut'; e.g. using 'ls' with other options, or utils like 'wc'.  The
point is that there's always input data where there are no such 
options.

Hope this helps...


-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/dash
Kernel: Linux 2.6.16-2-686
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968) (ignored: LC_ALL set to C)

Versions of packages coreutils depends on:
ii  libacl1                       2.2.39-1   Access control list shared library
ii  libc6                         2.3.6-15   GNU C Library: Shared libraries
ii  libselinux1                   1.30-1     SELinux shared libraries

coreutils recommends no packages.

-- no debconf information


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to