Reputation: 175
Hi I would like to know how to add a a regular tab
I want to the store the result in a variable of executing ls -lis.
AUX=`ls -lis $i`
RESULT+="$AUX"
I have a loop for all the files. And when I do
echo $RESULT:
All the information is in one line and I want to have an EOF for each file:
I have tried this but it doesn't work:
RESULT+="$AUX"
RESULT+=`echo -ne '\t'`
Thanks for your time
Upvotes: 0
Views: 875
Reputation: 70862
You have to enquote your argument (to variable definitions AND commands), with double-quotes:
AUX="`ls -lis $i`"
RESULT+="$AUX"
# ... loop $i..
echo "$RESULT"
Doing so, newlines will be stored in variables too.
You could even add extra newlines:
AUX="`ls -lis $i`"
RESULT+="$AUX"$'\n\n'
# ... loop $i..
echo "$RESULT"
RESULT=
for i in /usr /var;do
AUX="$(ls -lis $i)"
RESULT+="$AUX"$'\n\n'
done
sort -nk7 <<<"$RESULT"
could render someting like
total 244
total 96
13 0 lrwxrwxrwx 1 root root 4 jun 11 2013 run -> /run
12 0 lrwxrwxrwx 1 root root 9 jun 11 2013 lock -> /run/lock
131073 4 drwxr-xr-x 19 root root 4096 déc 15 11:28 cache
14 4 drwxr-xr-x 2 root root 4096 déc 15 11:29 www
2 4 drwxrwsr-x 12 root staff 4096 jun 11 2013 local
262145 4 drwxr-xr-x 2 root root 4096 nov 22 19:22 state
393217 4 drwxr-xr-x 3 root root 4096 aoû 1 2014 games
393305 4 drwxrwsr-x 2 root staff 4096 déc 14 2012 local
393306 4 drwxr-xr-x 22 root root 4096 mar 26 07:35 log
393330 4 drwxrwsr-x 2 root mail 4096 jun 11 2013 mail
393331 4 drwxr-xr-x 2 root root 4096 mai 5 2013 opt
393332 4 drwxr-xr-x 9 root root 4096 oct 13 2013 spool
524289 4 drwxr-xr-x 2 root root 4096 mar 25 07:35 backups
524290 4 drwxr-xr-x 79 root root 4096 fév 12 22:52 lib
663002 4 drwxr-xr-x 7 root root 4096 jan 6 2014 src
11 16 drwx------ 2 root root 16384 jun 11 2013 lost+found
11 16 drwx------ 2 root root 16384 jun 11 2013 lost+found
526043 16 drwxr-xr-x 2 root root 16384 fév 22 23:09 sbin
526287 16 drwxr-xr-x 439 root root 16384 mar 24 13:43 share
655361 20 drwxr-xr-x 68 root root 20480 fév 22 23:09 include
131155 36 drwxrwxrwt 3 root root 36864 mar 26 13:52 tmp
131073 60 drwxr-xr-x 248 root root 57344 mar 24 07:42 lib
524289 92 drwxr-xr-x 2 root root 90112 mar 24 13:43 bin
Upvotes: 1
Reputation: 58908
Printing a Tab character is as simple (and portable) as printf '\t'
. For example:
$ printf 'a\tb\n'
a b
However, you'll want to look into how to loop through files reliably, and why not to use ls
for this.
Upvotes: 1