I've posted a few threads with some quick help questions, and this is another one of those. I can't post enough gratitude for those much more knowledgeable than myself who are willing to give good advice for my minor issues. Now, onto my problem!
I have a file that contains a single column of random numbers called 'random.dat' for eases' sake, let's say it contains only one number. My goal is to write a bash script that looks at these numbers, scans through another file (in this case, tmp2.dat), and prints some of the original values, and some modified values. Let me show you the line I have, then explain the issue I come up with;
So, the script should look at the random number in random.dat, search through the file for the correct row, then print the modified column which includes '1' and '2' instead of whatever $3 and $4 are. Note that I want it to keep all of the rows that aren't in the random number file the same. The problem is that if there are more than one random number in the random.dat file, it only changes the last row of the file that matches the random number, leaving all of the others unchanged.
To summarize, I would like my script to turn this file:
Into this (assume random.dat contained the number '2')
(bolded parts are what should be changed for the row, indicated in the awk portion of the script)
I hope I explained things as well as possible, please let me know if you have any questions. Thanks again for anyone who is willing to help me solve this dilemma!
- read rand.dat and store the contents into an associative array 'r'
- for each line of temp.dat, if r[FNR]==1, then change $3 and $4.
- Print every line (the '1' and the end)
Thanks so much for your response! I tested the script out and it seems to do what I wanted it to do. I'm currently testing one last thing, and I will edit this post to let you know if it worked. It's looking good though, and I'm keeping my finger's crossed.
Thanks again!
EDIT: Everything works wonderfully, thanks for your help!
Guys, I have a variable in a script that I want to transform to into something else Im hoping you guys can help. It doesn't have to use sed/awk but I figured these would be the simplest.
DATE=20160120
I'd like to transform $DATE into "01-20-16" and move it into a new variable called... (8 Replies)
I need to change a file like this:
John Smith;http://www.profile1.com
John Smith;http://www.profile2.com
Frank Olsen;http://www.profile3.com
Frank Olsen;http://www.profile4.com
Into:
John Smith;http://www.profile1.com;http://www.profile2.com
Frank... (2 Replies)
seeking assistance on comparing two arrays using bash:
array1=(disk1, disk2, disk3, disk5, disk7, vol1, vol2, vol3, vol4, vol5)
array2=(disk2, disk5 vol2, vol4 )
1) if two arrays have same elements; EXIT
else populate array3 & array4 with elements that are different between array1 & array2 as:... (3 Replies)
In my script I'm retrieving a parameter through an API call. I need to trim some things out of the result so I can use it as a parameter to pass to another process. I've got it working but it's pretty kludgy and I'm hoping someone can help me with a better way.
This is the code that retrieves... (2 Replies)
Hello guys,
here is my problem:
I got a shell script which is called by an external piece of software, the external software is not under my control. The software passes data as an argument to my script like
./bla.sh 'service;1234567890;ok;hostname;some text here'
I need to pass the... (3 Replies)
I don't know if this is a big issue or not, but I'm having difficulties. I apoligize for the upcoming essay :o.
I'm writing a script, similar to a paint program that edits images, but in the form of ANSI block characters. The program so far is working. I managed to save the image into a file,... (14 Replies)
Hi All,
I am using a bash shell and want to the following thing.
A process sends the following string to my script
BACKUP_FAIL_REASON="Failed - Application Dump CDMACA-0:grep: /opt/nortel/ca/data/1245184/sd00/image1/S110907070708HIS... (4 Replies)
Hey all, Im kind of lost on how to do what I want so I figured I would ask.
I want to pipe STDOUT of an app to a log file, but I want to prepend each line of that output with the date and time.
Im drawing a complete blank on how to do this?? Any ideas?
i.e.
output is currently this:... (9 Replies)
In a bash script I've set a variable that is the directory name of where an executable lives.
the_dir=`dirname $which myscript`
which equates to something like "/path/to/dir/bin"
I need to cut that down to remove the "bin" so I now have "/path/to/dir/".
This sounds easy but as a... (2 Replies)
Hello, I'm writing a bash script and I have a question.
Here's what I'm doing:
I have a file called inv.dat which contains the following:
B102:Action Figure - Teacher:79
B103:Bike - Purple:23
B104:Baseball:25
B105:Cricket Bat:15
B101:Action Figure - Fireman:15
B100:Flame-Thrower:25
... (2 Replies)