ok so I have a list of names that end in either ot,om,oa.
So for example
DETOT
MANOA
DET0M
DET0A
MANOT
SEAOT
etc...
I want to be able to group this list by OT, OM, OA and have the output have some headers like this and be alphabatized and if possible be in colums instead of like below so three columns:
Location: Saint Paul, MN USA / BSD, CentOS, Debian, OS X, Solaris
Posts: 2,288
Thanks Given: 430
Thanked 480 Times in 395 Posts
Hi.
Assuming that the words can be any length, I think I would reverse the lines, sort them, then reverse them again just before printing. Check to see if you have command rev, then look at command sort ... cheers, drl
PS I think some zeros, "0", are mixed in with letter ohs, "O" in the sample data.
ok so I have a list of names that end in either ot,om,oa.
So for example
DETOT
MANOA
DET0M
DET0A
MANOT
SEAOT
I want to be able to group this list by OT, OM, OA and have the output have some headers like this and be alphabatized and if possible be in colums instead of like below so three columns:
Since you already know what groups you are expecting, you can probably skip the step of reversing the lines and just grep out the relevant bits thus:
Ok i'm really really new to this is there anyway you can break down your post?
This is what I understand.
is to echo each group and put a -- under it
then search for each group (OT OM OA) and I kinda get lost here ....
I'm so sorry that I need so much help!
by the way I did test it and it worked out perfect!!! Is there a way to make the outputs be side by side columns?
Also how can I change the headings of the groups? So I want to still group by OT OM OA but I want the headings of each to be something different?
Not a problem
First section is just to move the list of groups we are splitting into tp the top in case you want to change it later.
We then take a command line argument for the file to search over and store it.
Next we perform the loop below for each group (ie once per item in $MYGROUPS)
The egrep (a version of grep that understand regular expressions better) is looking for lines that end in our group identifier (the '\$' means 'end of line') in the file. The list that comes out is then passed to sort to alphabetise it.
The next part it completely optional, I just included it in case you might want to throw up a warning listing any lines that didn't match one of the groups you are looking for. You could add an 'exit 1' line just before the 'fi' at the end if you want to have it produce an error status when this happens too.
The first egrep is looking to see if there is any output left after grepping out (via the -v flag) any of the groups we are looking for.
It builds the regular expression based on the MYGROUPS variable by replacing the spaces with '|' symbols. This way it is doing an egrep -v "(OT|OM|OA)\$" over the file (ie list all output that doesn't end with Ot, OM or OA).
The first time is to see if we find any (it just throws it away), if so, it prints the header than does it again to the screen. It's a shame to do the search twice, you could store the output from the first run and just display it later but I don't like generating temporary files and was being a bit lazy
I've actually seen a couple of minor mistakes I made in that last part too - fixed in teh above version. The first grep was missing the brackets to group the regular expression and both greps were missing the \$ to indicate that it should be looking at the end of the line.
Hi,
This is one of the thing that am looking for when I post the question on the ps wrapper. It has since been closed as it has taken me too long to post an example.
I have replaced some of the original content of the ps output.
uname -a = SunOS <hostname> 5.11 11.3 sun4v sparc sun4v
... (1 Reply)
Hi,
I am using a command :-
ps -auxwww 2> /dev/null | awk 'match ($0, GIN:*/) {print substr($0, RSTART+3, RLENGTH-3)}' | sort | grep -v -F 'which gives output as
3 aruau
5 asun
4 cgan
Now I need a command which gives me something like this :-
3 aruau
5 asun
4 cgan... (2 Replies)
with a command i get a long list (example) and the entrys are intended.
DName=AAAAA
DName=AAAAA
lba=838,860,800
label=ftw_1
DName=BBBBB
DName=BBBBB
lba=838,860,800
label=ftw_2
DName=CCCCC
... (3 Replies)
Now I van sort in hour-minute-second. I need in seconds
ps -eo pid,etime,args --sort=start_time | grep bash
Sample Output
15064 03:23 -bash
I need in 03:23 in seconds (1 Reply)
Hi all! I have a comma delimited file and I'm sorting it based on fields 6, 8 and 10. The following does the job:
sort -t, -nk6,10 unsorted.txt -o sorted.txt
What I need to do now is to write every row containing same values on fields 6, 8 and 10 to a different file.
Any ideas on how to do... (2 Replies)
Hi All,
I would like to ask help on how can i achieve below output.
Inputfile:
Oct11,apa1-daily,01:25:01
Oct11,apa2-daily,01:45:23
Oct12,apa1-daily,02:30:11
Oct12,apa2-daily,01:55:01
Oct13,apa1-off,01:43:34
Oct13,apa2-off,01:22:04
Desired output:
Clients ... (3 Replies)
Hi
I have a file that is a fdupes output. I'd like to sort the duplicated file by size. The format file is the following:
5996544 bytes each:
/path1/to/file1.jpg
/path2/to/file1.jpg
/pathx/to/file1.jpg
... random number of lines
/path999/to/file1.jpg
591910 bytes each:... (2 Replies)
this one is a bit tricky:
host16 /etc/passwd changed Thu Jan 3 16:39:48
host3 /etc/group changed Thu Jan 3 16:39:48
host2 /etc/services changed Thu Jan 3 16:39:48
host10 /etc/group changed Thu Jan 10 09:59:01
host11 /etc/group changed Thu Jan 3 18:55:38
host17 /etc/group changed Thu Jan... (9 Replies)
I'm running against a file with 1008 records like this, all beginning '4760 Slave':
4760 Slave,7,3607 ,GL ,200605,11320024 , ,GBP ,X00033
,AI80190 ... (1 Reply)