ls in specific columns

 
Thread Tools Search this Thread
Homework and Emergencies Homework & Coursework Questions ls in specific columns
# 1  
Old 11-08-2011
ls in specific columns

Hello,

i need to get the ls output in 2 columns.1st column the directories and 2nd the files...
Also each column must be sorted by time...

For example if the >>ls command gives me this :
Code:
/dir2   /dir   /dir1
/dir3   file1  file2

I need to take this :
Code:
/dir        file1
/dir1       file2
/dir2
/dir3

...and also each column sorted by time Smilie
# 2  
Old 11-08-2011
This should work. It adjusts the directory column size based on the largest names seen in the list:

Code:
ls -pt | awk '
    /\/$/ {
        dcol[didx++] = $1;
        if( length( $1 ) > dmax )
            dmax = length( $1 );
        next;
    }
    {
        ccol[cidx++] = $1;
        next;
    }
    END {
        fmt = sprintf( "%%-%ds %%s\n", dmax );
        stop = didx > cidx ? didx : cidx;
        for( i = 0; i < stop; i++ )
            printf( fmt, dcol[i], ccol[i] );
    }
'


Last edited by agama; 11-08-2011 at 10:49 PM.. Reason: tweek.
This User Gave Thanks to agama For This Post:
# 3  
Old 11-09-2011
Quote:
Originally Posted by agama
This should work. It adjusts the directory column size based on the largest names seen in the list:

Code:
ls -pt | awk '
    /\/$/ {
        dcol[didx++] = $1;
        if( length( $1 ) > dmax )
            dmax = length( $1 );
        next;
    }
    {
        ccol[cidx++] = $1;
        next;
    }
    END {
        fmt = sprintf( "%%-%ds %%s\n", dmax );
        stop = didx > cidx ? didx : cidx;
        for( i = 0; i < stop; i++ )
            printf( fmt, dcol[i], ccol[i] );
    }
'

Very useful answer, thanks !
I try it but if a folder or file has space inside its name it doesn't give me the continue after the space..
for example if i have:
Code:
/dir 1  /file.exe
/dir 2  /dir3

I will get this answer:
Code:
/dir     /file.exe
/dir
/dir3

Smilie any ideas?
Also i have to use it inside c code.I should use system(); ??

Last edited by giampoul; 11-09-2011 at 09:29 AM..
# 4  
Old 11-09-2011
Quote:
Originally Posted by giampoul
Also i have to use it inside c code.I should use system(); ??
Was ls specified in the question? Otherwise they might be expecting you to use C functions.
This User Gave Thanks to CarloM For This Post:
# 5  
Old 11-09-2011
Quote:
Originally Posted by CarloM
Was ls specified in the question? Otherwise they might be expecting you to use C functions.
It doesn't say exactly...
Maybe i should save the ls in a .txt (ls -l > a.txt)
and then sort the .txt but i don't know how to do that either Smilie
# 6  
Old 11-09-2011
I'd start with ls -F1
This User Gave Thanks to vgersh99 For This Post:
# 7  
Old 11-09-2011
Quote:
Originally Posted by giampoul
It doesn't say exactly...
Maybe i should save the ls in a .txt (ls -l > a.txt)
and then sort the .txt but i don't know how to do that either Smilie
I was thinking more that they might be expecting you to use opendir and readdir.
This User Gave Thanks to CarloM For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Converting data from specific columns

i have a file (csv or txt or anything which has 4 columns (id,name,number,location) and it contains data. i want to convert the data of specific columns like name to ooooo and number to 88888 matching the field length of that columns. for example if name column has anthony which is 7, it should... (2 Replies)
Discussion started by: prajaktaraut
2 Replies

2. UNIX for Dummies Questions & Answers

Grep in specific columns

I am trying to search a list of strings from a file and display the string as well as the column in the search file it was found. I dont care about the row. what is wrong with my script? while read line; do awk -v var="$line" '{for(i=1;i<NF;i++) if ($NF==$var) break; print $var FS $NF' }'... (3 Replies)
Discussion started by: senhia83
3 Replies

3. UNIX for Dummies Questions & Answers

Intersection by specific columns

Hi, I'd like to intersect two files by the 4th col of the first file and 6th col of the second file. This is the code I use: awk 'NR==FNR{A;next}$6 File1 File2 However, this is only outputting the second file lines. I'd like to have both lines in a single line separated by a tab. Thanks in... (25 Replies)
Discussion started by: a_bahreini
25 Replies

4. UNIX for Dummies Questions & Answers

Printing lines with specific strings at specific columns

Hi I have a file which is tab-delimited. Now, I'd like to print the lines which have "chr6" string in both first and second columns. Could anybody help? (3 Replies)
Discussion started by: a_bahreini
3 Replies

5. Shell Programming and Scripting

Can't figure out how to find specific characters in specific columns

I am trying to find a specific set of characters in a long file. I only want to find the characters in column 265 for 4 bytes. Is there a search for that? I tried cut but couldn't get it to work. Ex. I want to find '9999' in column 265 for 4 bytes. If it is in there, I want it to print... (12 Replies)
Discussion started by: Drenhead
12 Replies

6. Shell Programming and Scripting

Deleting specific columns

Hi group, Can you please tell how to delete specific columns from a file. I know something like awk -F, '{ print $1" "$2" "15 }' input.txt > output.txt will delete all other columns. But this is in a way to copy some particular columns. But is there any other way to select just some... (11 Replies)
Discussion started by: smitra
11 Replies

7. UNIX for Dummies Questions & Answers

How to delete all columns that start with a specific value

I have this space delimited large text file with more than 1,000,000+ columns and about 100 rows. I want to delete all the columns that start with NA such that: File before modification aa bb cc NA100 dd aa b1 c2 NA101 de File after modification aa bb cc dd aa b1 c2 de How would I... (3 Replies)
Discussion started by: evelibertine
3 Replies

8. Shell Programming and Scripting

Replace specific columns in one file with columns in another file

HELLO! This is my first post here! By the way, I think it is great that people do this. My question: I have two files, one is a .dilm and one is a .txt. It is my understanding that the .dilm file can be treated as a .txt file. I wrote another program where I was able to manipulate it as if it... (3 Replies)
Discussion started by: mehdib
3 Replies

9. Shell Programming and Scripting

Mean of the specific columns

I have a input file that has some common values in 1st,2nd and 3rd columns. 4th and 5th are different. Now I would like to print the mean of the fourth column of similar values in 1st.2nd and 3rd columns along with all the values in 5th column. input NM_0 1.22 CR5 0.4 n_21663... (10 Replies)
Discussion started by: repinementer
10 Replies

10. Shell Programming and Scripting

Replace specific columns

hi All, Thi sis very urgent. I have large files with pipe delimited. For example: 1.txt 1001024|120|9|-0.0|#| 1001025|120|9|#| 1001026|120|9|#| 1001032|120|2|-0.0|#| 1002026|110|9|#| 1002027|110|9|-0.0|#| 1002028|120|1|1.0|#| I need to replace the 4th filed if it is # by |-| my... (2 Replies)
Discussion started by: jisha
2 Replies
Login or Register to Ask a Question