01-31-2008
Finding nth occurrence in line and replacing it
Hi,
I have several files with data that have to be imported to a database. These files contain records with separator characters. Some records are corrupt (2 separators are missing) and I need to correct them prior to importing them into the db.
Example:
|field1|field2|field3|field4|field5|field6|field7|field8|field9|field10|field11|field12|||
|field1|field2|field3|field4|field5|field6|field7|field8|field9|field10|field11|field12|field13|fiel d14|field15
|field1|field2|field3|field4|field5|field6|field7|field8|field9|field10|field11|field12|field13
The records 1 and 2 are correct. They consist of 15 optional fields separated by 15 | characters.
Record 3 is corrupt since it's missing 2 separator characters ahead field13.
It should look like:
|field1|field2|field3|field4|field5|field6|field7|field8|field9|field10|field11|field12|||field13
How can I achieve this by using sed or awk or something else?
Any help is greatly appreciated!
TIA,
Stephan.
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hello All,
How to replace a string in nth line of a file using sed or awk.
For Ex: test.txt
Line 1 : TEST1 TEST2 TEST3
Line 2 : TEST1 TEST2 TEST3 TEST4
Line 3 : TEST1 TEST2 TEST3 TEST5
Line 4 : TEST1 TEST2 TEST3 TEST6
Line 5 : TEST1 TEST2 TEST3 TEST7
i want to go to 4th line of a... (1 Reply)
Discussion started by: maxmave
1 Replies
2. UNIX for Dummies Questions & Answers
I have several files (around 50) that have the similar format. I need to extract the 5th line from every file and output that into a text file. So far, I have been able to figure out how to do it for a single file:
$ awk 'NR==5' text1.txt > results.txt
OR
$ sed -n '5p' text1.txt > results.txt... (6 Replies)
Discussion started by: oriqin
6 Replies
3. Shell Programming and Scripting
Hi all,
assume that i am having the following line in a file called file1.
triumph and disaster must be treated same.
I want to replace this line with.
follow excellence success will chase you.
is it possible to do this using sed. if possible kindly post me the... (2 Replies)
Discussion started by: anishkumarv
2 Replies
4. Shell Programming and Scripting
Hi
I have requirement to find nth occurrence in a file and capture data from with in lines (between lines)
Data in File.
<QUOTE>
<SESSION>
<ATTRIBUTE NAME='Parameter Filename' VALUE='file1.parm'/>
<ATTRIBUTE NAME='Service Name' VALUE='None'/>
</SESSION>
<SESSION>
<ATTRIBUTE... (6 Replies)
Discussion started by: tmalik79
6 Replies
5. Shell Programming and Scripting
There is already one thread with the same heading. But here the case is little different.
i have a line which have a field separator '|'
abc|def|ghi|jkl|mno|pqr|stu|vwx|yz
I want to replace every 3rd occurance + next character with the same + newline character.. I mean i want to enter a... (6 Replies)
Discussion started by: ratheeshjulk
6 Replies
6. Shell Programming and Scripting
Greetings experts. Searched the forums (perhaps not hard enough?) - Am searching for a method to capture all output from a log file following the nth occurrence of a known string.
Background:
Using bash, I want to monitor my Oracle DB alert log file. The script will count the total # of... (2 Replies)
Discussion started by: cjtravis
2 Replies
7. Shell Programming and Scripting
Hi,
I am getting crazy after days on looking at it:
Bash in Ubuntu 12.04.1
I want to do this:
pattern="system /path1/file1 file1"
new_pattern=" data /path2/file2 file2"
file to edit: data.db
- I need to search in the file data.db for the nth occurrence of pattern
- pattern must... (14 Replies)
Discussion started by: Phil3759
14 Replies
8. Shell Programming and Scripting
Please can someone help with this?
I have a file with lines as follows:
word1 word2 word3 word4 word5 word6 word7 word8
word1 word2 word3 word4 word5 word6 word7 word8
word1 word2 word3 word4 word5 word6 word7 word8
word1 word2 word3 word4 word5 word6 word7 word8
When I use the... (7 Replies)
Discussion started by: Subhadeep_Sahu
7 Replies
9. Shell Programming and Scripting
Hi All,
I am very new to shell scripting and tried to search this in the forum but no luck.
Requirment:
I have an input file which is comma separated. I need to replace the value in 4th column with another value. This has to happen for all the lines in the file.
Sample data:
Input... (2 Replies)
Discussion started by: arunkumarsd
2 Replies
10. Shell Programming and Scripting
Hello,
Below command trims right after the nth occurrence of a string.
When I try in while loop, it is not working.
In Terminal
IFS=/ ; read -ra val < Textfile ; echo "${val:0:3}"
It gives only one line:
sunday/monday/tuesday
Textfile:
sunday/monday/tuesday/wednesday/thursday... (2 Replies)
Discussion started by: baris35
2 Replies
LEARN ABOUT DEBIAN
moosex::emulate::class::accessor::fast
MooseX::Emulate::Class::Accessor::Fast(3pm) User Contributed Perl Documentation MooseX::Emulate::Class::Accessor::Fast(3pm)
NAME
MooseX::Emulate::Class::Accessor::Fast - Emulate Class::Accessor::Fast behavior using Moose attributes
SYNOPSYS
package MyClass;
use Moose;
with 'MooseX::Emulate::Class::Accessor::Fast';
#fields with readers and writers
__PACKAGE__->mk_accessors(qw/field1 field2/);
#fields with readers only
__PACKAGE__->mk_ro_accessors(qw/field3 field4/);
#fields with writers only
__PACKAGE__->mk_wo_accessors(qw/field5 field6/);
DESCRIPTION
This module attempts to emulate the behavior of Class::Accessor::Fast as accurately as possible using the Moose attribute system. The
public API of "Class::Accessor::Fast" is wholly supported, but the private methods are not. If you are only using the public methods (as
you should) migration should be a matter of switching your "use base" line to a "with" line.
While I have attempted to emulate the behavior of Class::Accessor::Fast as closely as possible bugs may still be lurking in edge-cases.
BEHAVIOR
Simple documentation is provided here for your convenience, but for more thorough documentation please see Class::Accessor::Fast and
Class::Accessor.
A note about introspection
Please note that, at this time, the "is" flag attribute is not being set. To determine the "reader" and "writer" methods using
introspection in later versions of Class::MOP ( > 0.38) please use the "get_read_method" and "get_write_method" methods in
Class::MOP::Attribute. Example
# with Class::MOP <= 0.38
my $attr = $self->meta->find_attribute_by_name($field_name);
my $reader_method = $attr->reader || $attr->accessor;
my $writer_method = $attr->writer || $attr->accessor;
# with Class::MOP > 0.38
my $attr = $self->meta->find_attribute_by_name($field_name);
my $reader_method = $attr->get_read_method;
my $writer_method = $attr->get_write_method;
METHODS
BUILD $self %args
Change the default Moose class building to emulate the behavior of C::A::F and store arguments in the instance hashref.
mk_accessors @field_names
Create read-write accessors. An attribute named $field_name will be created. The name of the c<reader> and "writer" methods will be
determined by the return value of "accessor_name_for" and "mutator_name_for", which by default return the name passed unchanged. If the
accessor and mutator names are equal the "accessor" attribute will be passes to Moose, otherwise the "reader" and "writer" attributes will
be passed. Please see Class::MOP::Attribute for more information.
mk_ro_accessors @field_names
Create read-only accessors.
mk_ro_accessors @field_names
Create write-only accessors.
follow_best_practices
Preface readers with 'get_' and writers with 'set_'. See original Class::Accessor documentation for more information.
mutator_name_for
accessor_name_for
See original Class::Accessor documentation for more information.
set
See original Class::Accessor documentation for more information.
get
See original Class::Accessor documentation for more information.
meta
See Moose::Meta::Class.
SEE ALSO
Moose, Moose::Meta::Attribute, Class::Accessor, Class::Accessor::Fast, Class::MOP::Attribute, MooseX::Adopt::Class::Accessor::Fast
AUTHORS
Guillermo Roditi (groditi) <groditi@cpan.org>
With contributions from:
Tomas Doran (t0m) <bobtfish@bobtfish.net>
Florian Ragwitz (rafl) <rafl@debian.org>
LICENSE
You may distribute this code under the same terms as Perl itself.
perl v5.10.0 2009-09-15 MooseX::Emulate::Class::Accessor::Fast(3pm)