How do I use the cut command to only print the directories?


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers How do I use the cut command to only print the directories?
# 8  
Old 10-07-2016
Yes, apologies, I never thought of varying column widths when the byte count grows or the file age exceeds 6 months.

I suppose I could argue that if people insist on putting spaces in file names then, ..........



Robin
# 9  
Old 10-07-2016
It would be worth a new thread, how to tidy up filenames after unpacking an archive with funny characters. Everyone probably has their own quick fix Smilie

Juha
# 10  
Old 10-07-2016
When learning how to use UNIX utilities, one key thing to learn is to use the right tool for the job.

It isn't just file sizes and whitespace characters in filenames that are a problem here. The ls -l command output width will also float up or down depending not only on the widest file size, but also on the widest link count, widest user name, and widest group name. Note that even if the timestamp on a file is six months old or in the future, that won't make the ls -l output width or field count change in some versions of the ls utility (at least in the POSIX locale and any English language locale I've used; but it certainly could be a factor in other locales).

And, then, since the user wants the names of directories (not the names of all files) and the 1st line of output from the ls -l command is a something like:
Code:
total xxx

where the word "total" may vary depending on the locale and xxx is the number of filesystem blocks occupied by files in the current directory, the cut utility by itself just is not capable of performing the requested task.

If you just want the names of unhidden directories located in the current directory to be printed on separate lines (as long as none of the directory names contains a <newline> character; which would also be a problem when using ls -l), you can easily do that just with shell built-ins in most POSIX-conforming shells:
Code:
printf '%s\n' */

or, if the trailing slash in the output that produces is a problem:
Code:
for i in */;do printf '%s\n' "${i%/}";done

If trailing slashes aren't a problem and there might not be any directories in the current directory, you could also use:
Code:
ls -d1 */ 2> /dev/null

Note that that is the digit 1, not the lowercase letter l in the options after -d.

Last edited by Don Cragun; 10-07-2016 at 06:52 PM.. Reason: Fix typos.
This User Gave Thanks to Don Cragun For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Cut command: can't make it cut fields

I'm a complete beginner in UNIX (and not a computer science student either), just undergoing a tutoring course. Trying to replicate the instructions on my own I directed output of the ls listing command (lists all files of my home directory ) to My_dir.tsv file (see the screenshot) to make use of... (9 Replies)
Discussion started by: scrutinizerix
9 Replies

2. UNIX for Dummies Questions & Answers

Print/cut/grep/sed/ date yyyymmdd on the filename only.

I have this filename "RBD_EXTRACT_a3468_d20131118.tar.gz" and I would like print out the "yyyymmdd" only. I use this command below, but if different command like cut or print....etc. Thanks ls RBD_EXTRACT* | sed 's/.*\(........\).tar.gz$/\1/' > test.txt (9 Replies)
Discussion started by: dotran
9 Replies

3. UNIX for Dummies Questions & Answers

Cut pid from ps using cut command

hay i am trying to get JUST the PID from the ps command. my command line is: ps -ef | grep "mintty" | cut -d' ' -f2 but i get an empty line. i assume that the delimiter is not just one space character, but can't figure out what should i do in order to do that. i know i can use awk or cut... (8 Replies)
Discussion started by: ran ber
8 Replies

4. Shell Programming and Scripting

Print path files in different directories

Hi guys :) First of all Happy New Year :) so i dont know if my doubt its already here posted by other person ... i need to print to one file the path of few files that are in different directories, like this: directory muscle ATP6.aa.muscle.fasta COX1.aa.muscle.fasta . . . ... (2 Replies)
Discussion started by: andreia
2 Replies

5. Shell Programming and Scripting

Print the whole line which contains the result of the command cut

Hey everyone I have a file 'agenda' which contains: Object Day Month Year Birthday 09 02 2012 i want to extract from a script the line which contains the day the user typed. for example if he type 09 the line is showed using... (4 Replies)
Discussion started by: Goldstein
4 Replies

6. UNIX for Dummies Questions & Answers

Using grep command to find the pattern of text in all directories and sub-directories.

Hi all, Using grep command, i want to find the pattern of text in all directories and sub-directories. e.g: if i want to search for a pattern named "parmeter", i used the command grep -i "param" ../* is this correct? (1 Reply)
Discussion started by: vinothrajan55
1 Replies

7. Shell Programming and Scripting

Cut Command error cut: Bad range

Hi Can anyone what I am doing wrong while using cut command. for f in *.log do logfilename=$f Log "Log file Name: $logfilename" logfile1=`basename $logfilename .log` flength=${#logfile1} Log "file length $flength" from_length=$(($flength - 15)) Log "from... (2 Replies)
Discussion started by: dgmm
2 Replies

8. UNIX for Dummies Questions & Answers

cut and print part of a string

I have a file that contains: yahoo.com.23456 web.log.common.us.gov.8675 192.168.1.55.34443 john-doe.about.com.22233 64.222.3.4.120 sunny.ca.4442 how can i remove the strings after the last dot (.) and reprint the file? Thanks. (3 Replies)
Discussion started by: apalex
3 Replies

9. UNIX for Dummies Questions & Answers

Need help with Cut command

Hi I am using 'find' on a particular directory which has some subdirectories too,so when I search for .txt files from the parent directory, it gives all files that matches the pattern in the parent aswellas in the sub directories . eg: Iam at /a/b/c where c has many other directories in it ... (7 Replies)
Discussion started by: jagadish_gaddam
7 Replies
Login or Register to Ask a Question