fun with find and cut - explode text - bash programming
Using cut, you can explode strings based on delimiter.
For example running the following will list all files under the current directory recursively. Each filename in output will begin with ./
find
#output
./mash
./mash/rel-tag
./mash/rel-tag/inc_vars.php
./mash/rel-tag/testfile.php
./mash/rel-tag/orig_file.php
./mash/rel-tag/output.txt
If we want to just display the directory names under the current level, we can use:
find |cut -d "/" -f 2
The -d option for cut lets you specify the delimiter. Normally the delimiter is the tab character.
The -f option allows you to output certain fields only.
The above will show multiple directory names in order found. To view only the unique directories sorted alphabetically with a current folder, use
find |cut -d "/" -f 2 | uniq | sort
To view the total count of the directories, use
find | cut -d "/" -f 2|sort|uniq|wc -l
cut [OPTION]... [FILE]...
DESCRIPTION
Print selected parts of lines from each FILE to standard output.
Mandatory arguments to long options are mandatory for short options
too.
-b, --bytes=LIST
output only these bytes
-c, --characters=LIST
output only these characters
-d, --delimiter=DELIM
use DELIM instead of TAB for field delimiter
-f, --fields=LIST
output only these fields; also print any line that contains no
delimiter character, unless the -s option is specified
-n with -b: donât split multibyte characters
-s, --only-delimited
do not print lines not containing delimiters
--output-delimiter=STRING
use STRING as the output delimiter the default is to use the
input delimiter
--help display this help and exit
--version
output version information and exit
Use one, and only one of -b, -c or -f. Each LIST is made up of one
range, or many ranges separated by commas. Each range is one of:
N Nâth byte, character or field, counted from 1
N- from Nâth byte, character or field, to end of line
N-M from Nâth to Mâth (included) byte, character or field
For more information on cut see man cut.
find fun
Find all directories and files by specifying a pattern. In this example, you are finding all mail folders on Ensim Webppliance.
find /home/virtual/site*/fst/var/mail/
More fun with find
find /home/virtual/site*/fst/var/mail/|grep -v /$|grep -v "#"|grep -v "@"
find /home/virtual/site*/fst/var/mail/|grep -v /$|grep -v "#"|grep -v "@"|wc -l
find /home/virtual/site*/fst/var/mail/|grep -v /$|grep -v "#"|grep -v "@"|more
0 Comments:
Post a Comment
<< Home