I have a unique problem. Below is the dataset which I have. I am writing a script which will read through the file and pull the invoice no. (Field 2 of C1 row).
For example. My script needs to accept parameters like TYRES MICHELIN.
Script will search the file for the C2 rows and whereever it will find the above two parameters - it will bring the Invoice number along wih the MICHELIN from respective C1 rows. It will also remove the doubtquotes from the texts.
Output of the script will give me
Another example is
and output of the script will be
Any help would be useful.
Thanks.
Last edited by chetanojha; 03-08-2017 at 06:18 PM..
You are calling your shell script differently. ./findInvoice.sh TYRE MICHELIN
AND ./findInvoice.sh PIRELLI
Which one is correct, as the _positional_ parameter gives '$2' in the first and '$1' in the second.
Please clarify.
I am assuming 'TYRE' should not be there and that '$1' is needed for both.
Is this the sort of thing you're after ? Note that 'example.txt' is just populated with the sample input that you supplied in your post.
Hope this helps. If not, then if you could advise how the behaviour or output differs from your expectations I can have another crack at solving this one.
If you want to search for multiple strings on one invocation of your script or if you want to print the 2nd field from C1 lines even if a given search string is also found on a C1 (as well as on a C2) line, you could try this simplified script:
which, if invoked with the command:
with your sample input in a file named dataset would produce the output:
This depends on the C1 lines being the 1st line in a record and there being a blank line in your file between records which seems to fit your sample input file.
This was written and tested with a Korn shell, but will also work with any other shell that uses Bourne shell syntax (such as bash). With minor changes, this could be made to print only records that matched all operands given to your script instead of matching any of the operands. But, to do that, you'd have to specify which of the operands is to be printed when they all match.
If you want to try this on a Solaris/SunOS system, change awk in the script to /usr/xpg4/bin/awk or nawk.
This User Gave Thanks to Don Cragun For This Post:
I am not able to run this script. It says cannot open the -dataset.
Other Few questions:
1. How do I pass multiple files? So that this script can look into multiple files (over 100K+).
2. I am running this script in bash shell. Script will look into over 100m records to find out the selected few.
3. This will output the result in a file?
Please consider the space between "-" and "dataset" in Don Cragun's proposal. "-" designates the stdin file descriptor.
1. specify several file names in lieu of just "dataset". Please be aware that the source of the data (file name) will not be printed with the data.
2. record count shouldn't be a problem as long as system limits are not exceeded.
3. As given the code prints to stdout. Use redirection to capture it in a file.
I have to create a new CSV file based on the value listed on the 3rd column from different CSV files. This is what I need:
1. I should substitute the first column from each file, excluding the headers, with the file name InputXX.
2. Then, I need to look for rows with 0 on the third column in... (7 Replies)
Hello All,
I want to change date part in file name to yesterday date in the file name.
example file name file-12122017-06-30-41.dat want file-12112017-06-30-41.dat I am doing like below. Below it is not changing the filename. Actually it is not parsing the $today and $yesterday value in... (1 Reply)
Dear Forum Member,
Hope you are well. I am sending this email to your reply to one of my post in the forum. I raised an help request from all of you regarding an issue I was facing. The original thread is here
... (3 Replies)
Hi Team,
In our project we have written below 2 scripts like
Script1:
Shell script start & END
Begin Audit process - uses teradata bteq
END Audit Process
Script 2: Environemtal variable file different
Now Client ask to change this requirement and need below files:
Script1:... (1 Reply)
Hi guys,
I have a text file named file1.txt that is formatted like this:
001 , ID , 20000
002 , Name , Brandon
003 , Phone_Number , 616-234-1999
004 , SSNumber , 234-23-234
005 , Model , Toyota
007 , Engine ,V8
008 , GPS , OFF
and I have file2.txt formatted like this:
... (2 Replies)
I'm trying to find a way to search a range of similar words in a file. I tried using sed but can't get it right:sed 's/\(ca01\)*//'It only removes "ca01" but leaves the rest of the word. I still want the rest of the information on the lines just not these specific words listed below. Any... (3 Replies)
Hi
I have two csv files, with the following formats:
FileA.log:
Application, This occured blah
Application, That occured blah
Application, Also this
AnotherLog, Bob did this
AnotherLog, Dave did that
FileB.log:
Uk, London, Application, datetime, LaterDateTime, Today it had'nt... (8 Replies)
I have csv file where I want the second column has to be replaced with value 1.
Source file
919568760477,1,2011-07-11T22:34:27.000+05:30,
919557735692,2,2011-07-11T22:36:16.000+05:30,
917417384969,2,2011-07-11T22:33:26.000+05:30,
Final file
... (30 Replies)
Hi
I have a date which I get as parameter. I want it to be added as first column in all the rows in a csv file.
I have tried the below code but no success.
date=$1
awk -F"," '{print $date","$0}' z3.csv > z4.csv
Could you tell the correct code for the above req.?
How to use code... (1 Reply)
Hi
I have a config file with multiple section and a parameter with the same name in each section. I need to read each parameter for distinct section.
Parameter = 1
....
Parameter = 2
....
Parameter = 4
....
Tried this:
grep -m1 '^*ProcessorsNumber' ServiceBrokerFramework.cfg |... (7 Replies)