03-02-2006
Sort/Grep Question
Hello all,
I have a test file that has the format:
.....
O
3.694950 -.895050 1.480000
O
5.485050 .895050 1.480000
Ti
-4.590000 4.590000 2.960000
Ti
-2.295000 2.295000 1.480000
O
-5.485050 -5.485050 -4.440000
Ti
.000000 4.590000 2.960000
O
3.694950 -5.485050 -4.440000
....
Basically there is a name/descriptor on one line, followed by the data attached to that name/descriptor on the next line. I'm trying to sort the data so that all the "Ti' lines are together, and all the "O" lines are together. Something like:
Ti
data
Ti
data
Ti
data
...
O
data
O
data
...
I've tried using grep like "grep Ti datafile > out1" and "grep O datafile > out2"
"cat out1 out2 > outnew", but this ignores the data lines. The sort command puts all the data lines together, followed by O lines, followed by Ti lines. I want to keep the data attached to the descriptor, which I can't get sort to do. I can't seem to find any switches in grep or sort that will help me out.
Is there a way to solve my problem with a simple command? I'm sure I could write a python script to solve this, but a command-line solution would be nice.
Thanks a lot.
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
M 47 HIS:LOT 32 DUTY 2 MIKE, FINISHED
MIKE ACTIVE STATUS
23TASK YES GOOD
100TASK NO GOOD
========================================
M 47 HIS:LOT 1 DUTY 1 MIKE, FINISHED
MIKE ACTIVE STATUS
23TASK YES GOOD
... (7 Replies)
Discussion started by: bobo
7 Replies
2. UNIX for Dummies Questions & Answers
I'm looking for a sort command that will sort by zip code first then by last name. (zip code is the last field, last name is first field)
data file looks like this.
Hope Bob 1234 Main ST. Colorado Springs, CO 80920
I was thinking along the lines of:
sort -k9n address.data //for the... (2 Replies)
Discussion started by: ssgatbliss
2 Replies
3. Shell Programming and Scripting
Hi all.
Is there a way that I can use the sort command too sort the following field by earliest time (12:00AM) to latest time (11:59PM)?
07:12PM
07:53PM
07:54PM
08:07PM
10:15AM
10:21AM
TIA!!!!!! (1 Reply)
Discussion started by: lyoncc
1 Replies
4. Shell Programming and Scripting
Hi all.
HPUX - posix shell - script question
Here's my data:
f1 f2 f3 f4 f5 f6
|02/12/09|12:33PM|3|Oceanview |OVT #1| VISA/MC
|02/12/09|12:14PM|3|Oceanview |OVT #1| VISA/MC
|02/12/09|09:13AM|4|Oceanview |OVT #1| VISA/MC ... (8 Replies)
Discussion started by: lyoncc
8 Replies
5. Shell Programming and Scripting
hello folks
i have a file that have data like
/test/aa/123
/test/aa/xyz
/test/bb/xyz
/test/bb/123
in above lines i just wants to grep "aa" and "bb".
Thanks,
Bash (4 Replies)
Discussion started by: learnbash
4 Replies
6. Shell Programming and Scripting
Hi Guys,
I have a file to be sorted and uniq with the following format.
S00001002|01|20021231
S00001002|01|20011031
S00001006|01|20120430
S00001006|01|20111231
S00001006|01|20111031
S00001006|01|20110831
S00001006|01|20110731
S00001006|01|20101231
S00001006|01|20091231... (5 Replies)
Discussion started by: nua7
5 Replies
7. Shell Programming and Scripting
Pseudo name=hdiskpower54
Symmetrix ID=000190101757
Logical device ID=0601
state=alive; policy=SymmOpt; priority=0; queued-IOs=0
==============================================================================
---------------- Host --------------- - Stor - -- I/O Path - -- Stats ---
### HW... (7 Replies)
Discussion started by: Daniel Gate
7 Replies
8. Homework & Coursework Questions
Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted!
1. The problem statement, all variables and given/known data:
1. Print the number of people that are in the /etc/passwd file with the name of George
2. Sort by name and... (8 Replies)
Discussion started by: Jagst3r21
8 Replies
9. Homework & Coursework Questions
1. The problem statement, all variables and given/known data:
Please bare in mind I am a complete novice to this and have very very basic knowledge so please keep any answers as simple as possible and explain in terms I will understand ahha :):)
I have a text file of names and test scores... (1 Reply)
Discussion started by: jamesb18
1 Replies
10. UNIX for Beginners Questions & Answers
Have a text file containing 4 columns, the 4th column is sorted numerically in descending order. The 2nd column is alpha text. Been able to get the 4th column to sort in descending order. The 2nd column sorts correctly but it's also in reverse. Would like to be able to keep the 4th column sort... (8 Replies)
Discussion started by: jimmyf
8 Replies
LEARN ABOUT DEBIAN
poe::filter::grep
POE::Filter::Grep(3pm) User Contributed Perl Documentation POE::Filter::Grep(3pm)
NAME
POE::Filter::Grep - select or remove items based on simple rules
SYNOPSIS
#!perl
use POE qw(
Wheel::FollowTail
Filter::Line Filter::Grep Filter::Stackable
);
POE::Session->create(
inline_states => {
_start => sub {
my $parse_input_as_lines = POE::Filter::Line->new();
my $select_sudo_log_lines = POE::Filter::Grep->new(
Put => sub { 1 },
Get => sub {
my $input = shift;
return $input =~ /sudo[d+]/i;
},
);
my $filter_stack = POE::Filter::Stackable->new(
Filters => [
$parse_input_as_lines, # first on get, last on put
$select_sudo_log_lines, # first on put, last on get
]
);
$_[HEAP]{tailor} = POE::Wheel::FollowTail->new(
Filename => "/var/log/system.log",
InputEvent => "got_log_line",
Filter => $filter_stack,
);
},
got_log_line => sub {
print "Log: $_[ARG0]
";
}
}
);
POE::Kernel->run();
exit;
DESCRIPTION
POE::Filter::Grep selects or removes items based on simple tests. It may be used to filter input, output, or both. This filter is named
and modeled after Perl's built-in grep() function.
POE::Filter::Grep is designed to be combined with other filters through POE::Filter::Stackable. In the "SYNOPSIS" example, a filter stack
is created to parse logs as lines and remove all entries that don't pertain to a sudo process. (Or if your glass is half full, the stack
only selects entries that DO mention sudo.)
PUBLIC FILTER METHODS
In addition to the usual POE::Filter methods, POE::Filter::Grep also supports the following.
new
new() constructs a new POE::Filter::Grep object. It must either be called with a single Code parameter, or both a Put and a Get parameter.
The values for Code, Put, and Get are code references that, when invoked, return true to select an item or false to reject it. A Code
function will be used for both input and output, while Get and Put functions allow input and output to be filtered in different ways. The
item in question will be passed as the function's sole parameter.
sub reject_bidoofs {
my $pokemon = shift;
return 1 if $pokemon ne "bidoof";
return;
}
my $gotta_catch_nearly_all = POE::Filter::Grep->new(
Code => &reject_bidoofs,
);
Enforce read-only behavior:
my $read_only = POE::Filter::Grep->new(
Get => sub { 1 },
Put => sub { 0 },
);
modify
modify() changes a POE::Filter::Grep object's behavior at run-time. It accepts the same parameters as new(), and it replaces the existing
tests with new ones.
# Don't give away our Dialgas.
$gotta_catch_nearly_all->modify(
Get => sub { 1 },
Put => sub { return shift() ne "dialga" },
);
SEE ALSO
POE::Filter for more information about filters in general.
POE::Filter::Stackable for more details on stacking filters.
BUGS
None known.
AUTHORS & COPYRIGHTS
The Grep filter was contributed by Dieter Pearcey. Documentation is provided by Rocco Caputo.
Please see the POE manpage for more information about authors and contributors.
perl v5.14.2 2012-05-15 POE::Filter::Grep(3pm)