Sponsored Content
Top Forums UNIX for Dummies Questions & Answers Finding nth occurrence in line and replacing it Post 302163244 by stresing on Thursday 31st of January 2008 10:53:49 AM
Old 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

Replacing a string in nth line

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

Finding nth line across multiple files

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

Finding and replacing whole line using sed

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

find string nth occurrence in file and print line number

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

Replacing nth occurrence

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

How to output all lines following Nth occurrence of string

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

Insert new pattern in newline after the nth occurrence of a line pattern - Bash in Ubuntu 12.04

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

Extract the text between the nth occurrence of square brackets

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

Replacing nth field with nth_text for each line in a file

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

Trim after nth occurrence with loop

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
WebService::CIA(3pm)					User Contributed Perl Documentation				      WebService::CIA(3pm)

NAME
WebService::CIA - Get information from the CIA World Factbook. SYNOPSIS
use WebService::CIA; use WebService::CIA::Source::DBM; use WebService::CIA::Source::Web; # Get data from a pre-compiled DBM file my $source = WebService::CIA::Source::DBM->new({ DBM => "factbook.dbm" }); my $cia = WebService::CIA->new({ Source => $source }); $fact = $cia->get("uk", "Population"); print $fact; # Get data direct from the CIA World Factbook my $source = WebService::CIA::Source::Web->new(); my $cia = WebService::CIA->new({ Source => $source }); $fact = $cia->get("uk", "Population"); print $fact; DESCRIPTION
A module which gets information from the CIA World Factbook. Crypt::SSLeay The most recent version of the CIA World Factbook uses HTTPS to access its web pages. As such, WebService::CIA requires Crypt::SSLeay which suffers from the usual cryptographic export restriction mumbo jumbo. Sorry about that. Users of ActiveState's ActivePerl should see <http://aspn.activestate.com/ASPN/Downloads/ActivePerl/PPM/Repository> for instructions on downloading a PPM of Crypt::SSLeay. METHODS
"new(\%opts)" Creates a new WebService::CIA object. Takes a hashref, which must contain a "Source" key whose value is a WebService::CIA::Storage object. "get($country_code, $field)" This method retrieves information from the store. It takes two arguments: a country code (as defined in FIPS 10-4 on <https://www.cia.gov/library/publications/the-world-factbook/appen- dix/appendix-d.html>, e.g. "uk", "us") and a field name (as defined in <https://www.cia.gov/library/publications/the-world-fact- book/docs/notesanddefs.html>, e.g. "Population", "Agriculture - products"). (WebService::CIA::Parser also creates four extra fields: "URL", "URL - Print", "URL - Flag", and "URL - Map" which are the URLs of the country's Factbook page, the printable version of that page, a GIF map of the country, and a GIF flag of the country respectively.) The field name is very case and punctuation sensitive. It returns the value of the field, or "undef" if the field or country isn't in the store. Note that when using WebService::CIA::Store::Web, "get" will also return "undef" if there is an error getting the page. "get_hashref(@countries, @fields)" This method takes two arguments: an arrayref of country codes and an arrayref of field names. It returns a hashref of the form { 'country1' => { 'field1' => 'value', 'field2' => 'value' }, 'country2' => { 'field1' => 'value', 'field2' => 'value' } } "get_all_hashref(@countries)" Get all the fields available for countries. It takes one argument, an arrayref of country codes. It returns a hashref similar to the one from "get_hashref" above, containing all the fields available for each country. "source()" Get a reference to the WebService::CIA::Source object in use. CONFIGURATION VARIABLES
$WebService::CIA::base_url Sets the base URL for the Factbook (currently "https://www.cia.gov/library/publications/the-world-factbook/"). If the Factbook changes location, this can be changed to point to the new location (assuming the relative structure of the Factbook is unchanged). AUTHOR
Ian Malpass (ian-cpan@indecorous.com) COPYRIGHT
Copyright 2003-2007, Ian Malpass This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The CIA World Factbook's copyright information page (<https://www.cia.gov/library/publications/the-world-factbook/docs/contributor_copy- right.html>) states: The Factbook is in the public domain. Accordingly, it may be copied freely without permission of the Central Intelligence Agency (CIA). SEE ALSO
WebService::CIA::Parser, WebService::CIA::Source::DBM, WebService::CIA::Source::Web perl v5.8.8 2008-02-04 WebService::CIA(3pm)
All times are GMT -4. The time now is 08:52 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy