I have the below script to print all specified columns from the 1st to the 9th using printf to format, however I would like to print any columns thereafter the 9th column and I am unsure of how to do so
pwd=`pwd`
#Megabytes
max_size_1=`ls -ltr "$pwd" | grep -v "total" | awk '{print $1}' | sort -n | tail -1 | wc -m`
max_size_2=`ls -ltr "$pwd" | grep -v "total" | awk '{print $2}' | sort -n | tail -1 | wc -m`
max_size_3=`ls -ltr "$pwd" | grep -v "total" | awk '{print $3}' | sort -n | tail -1 | wc -m`
max_size_4=`ls -ltr "$pwd" | grep -v "total" | awk '{print $4}' | sort -n | tail -1 | wc -m`
max_size_5=`ls -ltr "$pwd" | grep -v "total" | awk '{$5=sprintf("%.0f M", $5/1024^2)} 1' | awk '{print $5}' | sort -n | tail -1 | wc -m`
ls -ltr "$pwd" | grep -v "total" | awk '{$5=sprintf("%.0f M", $5/1024^2)} 1' | eval "awk '{printf \"%$max_size_1-s %$max_size_2-s %$max_size_3-s %$max_size_4-s %$max_size_5-s %-3s %-3s %-3s %-6s\\n\", \$1, \$2, \$3, \$4, \$5, \$6, \$7, \$8, \$9}'"
Output is:
-rwxr-xr-x 1 informix informix 0 M Mar 1 13:45
-rwxr-xr-x 1 informix informix 0 M Mar 1 13:45
-rwxr-xr-x 1 informix informix 0 M Mar 1 13:46
-rwxr-xr-x 1 informix informix 0 M Mar 9 10:51
-rw-r----- 1 informix informix 0 M Mar 9 12:36
-rwxrwxrwx 1 informix informix 0 M Mar 9 13:01
What I would like:
-rwxr-xr-x 1 informix informix 0 M Mar 1 13:45 ls-ltrg
-rwxr-xr-x 1 informix informix 0 M Mar 1 13:45 ls-ltrk
-rwxr-xr-x 1 informix informix 0 M Mar 1 13:46 ls-ltrb
-rwxr-xr-x 1 informix informix 0 M Mar 9 10:51 ls-ltrm
-rw-r----- 1 informix informix 0 M Mar 9 12:36 split word
-rwxrwxrwx 1 informix informix 0 M Mar 9 13:01 test.sh
It should print all columns after nine even files or names that are split thereafter.
ls
... usingfind
can filter files based on size, and then the filtered files can be passed on to another command/script.... – Sundeep Mar 09 '17 at 12:05