This is how my data would be. I want to pull out Batch number i.e 4th column in the record that starts with TR and append it to first column of LN. This is one single file.
cat B.txt | while read line
do
var=`echo $line | cut -d"|" -f2`
cat A.txt | while read value
do
val=`echo $value | cut -d"|" -f2`
val1=`echo $value | cut -d"|" -f4`
if [[ $var == $val ]]
then
line=$val1"|"$line
echo $line>>Apple.txt
fi
done
done
I tried the above code and its very very slow. The volume of records is from 2Mb to 60 MB.
Please adive. I think awk is faster but not sure how to do it in awk
You are looping over the entire file for every record? Whew!
You could at least optimize it to read only the matching lines.
But anyway, this is simple to do in awk, without any temporary file.
I hope I captured your requirements correctly. This assumes the TR always comes before the corresponding LN and that the LNs with the same number will always be immediately after the corresponding TR, and that there will be no LNs with other numbers before the next TR. It prints only the LNs, with field 4 from the previous TR tacked on at the front.
Hi,
I got it. I am using Sun solaris and I have to use nawk. It solved the issue.
your code worked like magic. Thanks a Bunch. Is there any way to remove unwanted spaces in that file?
I assume you want the spaces before the separators out?
Edit: silly me, there are no other spaces.
Just to recap, this captures $4 into t if this is a line starting with "TR". If it starts with "LN", it substitutes spaces followed by separator with just a separator, then prints the value of t followed by the whole current line.
Thanks for RudiC for his extraordinary help on organizing files in a batch of 10 using below code.
FL=($(ls));
for ((i=0;i<=${#FL};i++)); do
for j in ${FL:$i:10};
do
$batch ${j} ${j}.txt
done;
echo "Pausing for next iteration";
echo... (6 Replies)
Hi Power User,
I'm trying to compute this kind of text file format:
file1:
jakarta 100 150
jakarta 170 210
beijing 220 250
beijing 260 280
beijing 290 320
new_york 330 350
new_york 370 420
tokyo 430 470
tokyo 480 ... (2 Replies)
I would like to print the number of records of 2 files, and divide the two numbers
awk '{print NR}' file1 > output1
awk '{print NR}' file2 > output2
paste output1 output2 > output
awl '{print $1/$2}' output > output_2
is there a faster way? (8 Replies)
Morning,
I'm trying to execute a vbs from a .bat file. Can someone tell me what the difference is between these statements:
start c:\lib\runit.vbc
c:\lib\runit.vbs
When I run the batch with the 'start' parameter it doesn't seem to do anything. (1 Reply)
I did some searches, but couldn't really find what I'm looking for. I have a file formatted as below:
BOF ABC CO - XYZ COMM DATA OF 07/05/2011
EBA00000001 sdfa rtyus uyml
EBB00000001 54682 984w3
EBA00000002 mkiyuasdf 98234
I want to pull the date from the header record and add it... (4 Replies)
hi,
i have some values in excel sheet as in below format:
122
144
222
555
666
etc....
i need to get the output in the below manner..
£122
£144
£222
£555
£666 (1 Reply)
Hi All,
Great Forum and Great help. Keep up the good work.
My question is what is the command and it's syntax to append a record to an output file using PERL. Please provide the command syntax.
In regular shell you can use the '>>' to append.
Basically, I am creating a small report... (1 Reply)
Hi ,
I am trying to execute one script residing on server B from server A and in automated way but with a trigger.
My main quetion are
1) How I will login to the remote server automatically with user name and password. ( rsh or any other way ?)
2) Once logged in I need to execute... (2 Replies)