Re: "cut" command not working as expected
On Tue, Jun 17, 2003 at 08:54:59PM +0100, David selby wrote:
> I need to get the first two file names from a directory ...
If that's the spec, then I'd do
ls | head -2
and that'd give you the first two files, unless you have 'ls' aliased to
something else (ls -C, perhaps ..?)
> My code
>
> directory=$(ls -r --format=single-column)
>
> works perfect and gives me ...
>
> 20030617Jun17.tar.gz 20030616Jun16.tar.gz 20030615Jun15.tar.gz
> 20030614Jun14.tar.gz 20030613Jun13.tar.gz 20030612Jun12.tar.gz
> 20030611Jun11.tar.gz 20030610Jun10.tar.gz 20030609Jun09.tar.gz
> 20030608Jun08.tar.gz 20030607Jun07.tar.gz 20030606Jun06.tar.gz
> 20030605Jun05.tar.gz 20030604Jun04.tar.gz 20030603Jun03.tar.gz
> 20030602Jun02.tar.gz 20030601Jun01.tar.gz 20030531May31.tar.gz
> 20030530May30.tar.gz 20030529May29.tar.gz 20030528May28.tar.gz
> 20030527May27.tar.gz 20030526May26.tar.gz 20030525May25.tar.gz
> 20030524May24.tar.gz 20030523May23.tar.gz 20030522May22.tar.gz
> 20030521May21.tar.gz 20030520May20.tar.gz 20030519May19.tar.gz
> 20030518May18.tar.gz 20030517May17.tar.gz 20030516May16.tar.gz
> 20030515May15.tar.gz 20030514May14.tar.gz 20030513May13.tar.gz
> 20030512May12.tar.gz 20030511May11.tar.gz 20030510May10.tar.gz
> 20030509May09.tar.gz 20030508May08.tar.gz 20030507May07.tar.gz
> 20030506May06.tar.gz 20030505May05.tar.gz 20030504May04.tar.gz
> 20030503May03.tar.gz 20030426Apr26.tar.gz 20030419Apr19.tar.gz
> 20030412Apr12.tar.gz 20030405Apr05.tar.gz 20030329Mar29.tar.gz
> 20030322Mar22.tar.gz 20030315Mar15.tar.gz 20030308Mar08.tar.gz
> 20030301Mar01.tar.gz 20030222Feb22.tar.gz 20030215Feb15.tar.gz
> 20030208Feb08.tar.gz 20030205Feb05.tar.gz
>
> I want to cut the first two file names from the list ... To my way of
> thinking this should be easy ...
So you mean the first two files from each triple?
That's not what your "ls -r --format=single-column" is going to give
you, I'm afraid.
> cut -d' ' -f2 $directory
Notwithstanding what I've just said, I'd do the following instead of
that line:
echo $directory | cut -d' ' -f2
> The xterm goes nuts and ends up in hyroglyphics ! At a guess I would say
> that the white space between .gz & 200... may not be space but may have
> a different ascii value. I have not found a utility to display raw ASCII
> for a file yet to check this out.
No idea, sorry. Have you any reason to believe that the filenames have
wierd characters in them?
> I am a relative begginer at learning bash ...
Don't worry - there's a definate "ah HA" point when it clicks :-)
HTH,
jc
Reply to: