Search code examples
linuxbashshellunixscripting

shell must parse ls -Al output and get last field (file or directory name) ANY SOLUTION


I must parse ls -Al output and get file or directory name

ls -Al output :

drwxr-xr-x  12 s162103  studs         12 march 28 2012 personal domain
drwxr-xr-x   2 s162103  studs          3 march 28 22:32 public_html
drwxr-xr-x   7 s162103  studs          8 march 28 13:59 WebApplication1

I should use only ls -Al | <something>

for example:

ls -Al | awk '{print $8}'

but this doesn't work because $8 is not name if there's spaces in directory name,it is a part of name. maybe there's some utilities that cut last name or delete anything before? I need to find any solution. Please, help!

EDITED: I know what parse ls -Al is bad idea but I should exactly parse it with construction above! No way to use some thing like this

for f in *; do
    somecommand "$f"
done

Solution

  • How about thisls -Al |awk '{$1=$2=$3=$4=$5=$6=$7=$8="";print $0}' I know it's a cheap trick but since you don't want to use anything other than ls -Al I cant think anything better...