Sponsored Content
Top Forums Shell Programming and Scripting Round Robin Distribution of Contents of file to 3 files Post 302342122 by rubin on Friday 7th of August 2009 12:30:23 PM
Old 08-07-2009
Quote:
Originally Posted by police
How can we do error handling on the awk commands.
Based on earlier threads i am doing this command.Accidently i discovered that if directory /tmp/temp/ is not there it throws out an error ( The directory names are parameterized, this is just an example) , but the return code is still equal zero

ls *.dat | awk -v COUNT=3 -v DIR="/tmp/temp/" '{ f=(f%COUNT)+1 ; print > DIR "_list_" f ".log" }'


Any suggestion ?

awk needs an explicit declaration ( exit n ) of its return status ... so assuming you don't have an END statement one way would be:

Code:
$ ls *.dat | awk -v COUNT=3 -v DIR="/tmp/invalid_dir/" 'BEGIN{ if(system("test -d " DIR)>0) exit 2 }{ f=(f%COUNT)+1; print f }'
$ echo $?
2

$ ls *.dat | awk -v COUNT=3 -v DIR="/tmp/valid_dir/"   'BEGIN{ if(system("test -d " DIR)>0) exit 2 }{ f=(f%COUNT)+1; print f }'
1
2
3
1
2
3
$ echo $?
0


otherwise ( END present ):

Code:
ls *.dat | awk -v COUNT=3 -v DIR="/tmp/valid_dir" 'BEGIN{ if(system("test -d " DIR)>0) {e=1; exit 2}}{ f=(f%COUNT)+1; print f }
                                          END  { if(e) exit 2; else print "more actions here"}'

Or it might be easier to test for DIR existence beforehand at the shell level.
 

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Round Robin Scheduling

Hi, first post. Well, here goes: Ok, so I need to build a round robin scheduling algorithm. I understand HOW the algorithm works and I can write it down/show you on paper if you were to ask me "how does the RR scheduling algorithm work?" Only problem is that I'm having a hell of a time... (0 Replies)
Discussion started by: ramoneguru
0 Replies

2. Shell Programming and Scripting

comparing files to contents of a file

Hi I have a problem trying to run a while statement. I have files under one directory that i need to compare to a value in filex and update that file with the result files in the directory are DFC1. DFC5. DFC345. DFC344. DFC9. The program i am trying to run will take the number... (3 Replies)
Discussion started by: SummitElse
3 Replies

3. Shell Programming and Scripting

writing files to a dir in round robin order

I have a list of directories. (say a1,a2,a3,a4,a5) I need to get the directory last modified and access the next one to put some files over there (say if a3 is the latest dir modified ie, last time files were put into a3, this time I need to move the files in a4)...and if a5 is the last modified... (6 Replies)
Discussion started by: kanchan_cp
6 Replies

4. Shell Programming and Scripting

Compare two files and remove all the contents of one file from another

Hi, I have two files, in which the second file has exactly the same contents of the first file with some additional records. Now, if I want to remove those matching lines from file2 and print only the extra contents which the first file does not have, I could use the below unsophisticated... (3 Replies)
Discussion started by: royalibrahim
3 Replies

5. UNIX for Dummies Questions & Answers

Move contents of a directory into one file for e-mail distribution ...

Hello, Here is what I am trying to accomplish. I am going to have one directory in which there will be files of varying types (Excel, Word, PPT, and possible others), and I need to be able to be bundle however many files there are in there together in to one file to be used as an e-mail... (3 Replies)
Discussion started by: rip73
3 Replies

6. Shell Programming and Scripting

How to mix the contents of 2 files into a new file?

Hello Everybody! My question is how can I mix for example file_a with file_b in the following method: After 2 lines of file_a put 2 lines from file_b to file_c. For example: file_a: 1 2 3 4 5 6 file_b: 11 22 (7 Replies)
Discussion started by: Levi85
7 Replies

7. UNIX for Dummies Questions & Answers

Round Robin Algorithm

Hey, guys I have a task: Job Running time Priority A 10 3 B 6 5 C 2 2 D 4 1 E 8 4 All 5 jobs have the same arrival time. The question is, what is the average waiting time according to Round Robin algorithm. Quantum = 1 min. The answer that was given by a... (1 Reply)
Discussion started by: Anne_Stark
1 Replies

8. Programming

Round Robin Scheduling via UCONTEXT.H

Hi I am implementing Round Robin Scheduling using ucontext.h functions. Well i am using my own logic for round robin but i am stuck at one point. I am using swapcontext for shifting from one process to another. Now how do i get to know that after 4 sec(Round Robin Time) where the process has... (1 Reply)
Discussion started by: aditya08
1 Replies

9. Shell Programming and Scripting

Need Script to copy the contents of two files into one file

Hi i need Script to copy the contents of two files into one file i have 2 fil X1.txt / X2.txt i need script to copy the contents of X1 and X2 In AllXfile X1.txt File X1 X2.txt File X2 AllXfile.txt File X1 File X2 (2 Replies)
Discussion started by: azzeddine2005
2 Replies

10. UNIX for Beginners Questions & Answers

Output file name and file contents of multiple files to a single file

I am trying to consolidate multiple information files (<hostname>.Linux.nfslist) into one file so that I can import it into Excel. I can get the file contents with cat *Linux.nfslist >> nfslist.txt. I need each line prefaced with the hostname. I am unsure how to do this. --- Post updated at... (5 Replies)
Discussion started by: Kentlee65
5 Replies
Round(3)						User Contributed Perl Documentation						  Round(3)

NAME
Math::Round - Perl extension for rounding numbers SYNOPSIS
use Math::Round qw(...those desired... or :all); $rounded = round($scalar); @rounded = round(LIST...); $rounded = nearest($target, $scalar); @rounded = nearest($target, LIST...); # and other functions as described below DESCRIPTION
Math::Round supplies functions that will round numbers in different ways. The functions round and nearest are exported by default; others are available as described below. "use ... qw(:all)" exports all functions. FUNCTIONS
round LIST Rounds the number(s) to the nearest integer. In scalar context, returns a single value; in list context, returns a list of values. Numbers that are halfway between two integers are rounded "to infinity"; i.e., positive values are rounded up (e.g., 2.5 becomes 3) and negative values down (e.g., -2.5 becomes -3). round_even LIST Rounds the number(s) to the nearest integer. In scalar context, returns a single value; in list context, returns a list of values. Numbers that are halfway between two integers are rounded to the nearest even number; e.g., 2.5 becomes 2, 3.5 becomes 4, and -2.5 becomes -2. round_odd LIST Rounds the number(s) to the nearest integer. In scalar context, returns a single value; in list context, returns a list of values. Numbers that are halfway between two integers are rounded to the nearest odd number; e.g., 3.5 becomes 3, 4.5 becomes 5, and -3.5 becomes -3. round_rand LIST Rounds the number(s) to the nearest integer. In scalar context, returns a single value; in list context, returns a list of values. Numbers that are halfway between two integers are rounded up or down in a random fashion. For example, in a large number of trials, 2.5 will become 2 half the time and 3 half the time. nearest TARGET, LIST Rounds the number(s) to the nearest multiple of the target value. TARGET must be positive. In scalar context, returns a single value; in list context, returns a list of values. Numbers that are halfway between two multiples of the target will be rounded to infinity. For example: nearest(10, 44) yields 40 nearest(10, 46) 50 nearest(10, 45) 50 nearest(25, 328) 325 nearest(.1, 4.567) 4.6 nearest(10, -45) -50 nearest_ceil TARGET, LIST Rounds the number(s) to the nearest multiple of the target value. TARGET must be positive. In scalar context, returns a single value; in list context, returns a list of values. Numbers that are halfway between two multiples of the target will be rounded to the ceiling, i.e. the next algebraically higher multiple. For example: nearest_ceil(10, 44) yields 40 nearest_ceil(10, 45) 50 nearest_ceil(10, -45) -40 nearest_floor TARGET, LIST Rounds the number(s) to the nearest multiple of the target value. TARGET must be positive. In scalar context, returns a single value; in list context, returns a list of values. Numbers that are halfway between two multiples of the target will be rounded to the floor, i.e. the next algebraically lower multiple. For example: nearest_floor(10, 44) yields 40 nearest_floor(10, 45) 40 nearest_floor(10, -45) -50 nearest_rand TARGET, LIST Rounds the number(s) to the nearest multiple of the target value. TARGET must be positive. In scalar context, returns a single value; in list context, returns a list of values. Numbers that are halfway between two multiples of the target will be rounded up or down in a random fashion. For example, in a large number of trials, "nearest(10, 45)" will yield 40 half the time and 50 half the time. nlowmult TARGET, LIST Returns the next lower multiple of the number(s) in LIST. TARGET must be positive. In scalar context, returns a single value; in list context, returns a list of values. Numbers that are between two multiples of the target will be adjusted to the nearest multiples of LIST that are algebraically lower. For example: nlowmult(10, 44) yields 40 nlowmult(10, 46) 40 nlowmult(25, 328) 325 nlowmult(.1, 4.567) 4.5 nlowmult(10, -41) -50 nhimult TARGET, LIST Returns the next higher multiple of the number(s) in LIST. TARGET must be positive. In scalar context, returns a single value; in list context, returns a list of values. Numbers that are between two multiples of the target will be adjusted to the nearest multiples of LIST that are algebraically higher. For example: nhimult(10, 44) yields 50 nhimult(10, 46) 50 nhimult(25, 328) 350 nhimult(.1, 4.512) 4.6 nhimult(10, -49) -40 VARIABLE
The variable $Math::Round::half is used by most routines in this module. Its value is very slightly larger than 0.5, for reasons explained below. If you find that your application does not deliver the expected results, you may reset this variable at will. STANDARD FLOATING-POINT DISCLAIMER Floating-point numbers are, of course, a rational subset of the real numbers, so calculations with them are not always exact. Numbers that are supposed to be halfway between two others may surprise you; for instance, 0.85 may not be exactly halfway between 0.8 and 0.9, and (0.75 - 0.7) may not be the same as (0.85 - 0.8). In order to give more predictable results, these routines use a value for one-half that is slightly larger than 0.5. Nevertheless, if the numbers to be rounded are stored as floating-point, they will be subject, as usual, to the mercies of your hardware, your C compiler, etc. AUTHOR
Math::Round was written by Geoffrey Rommel <GROMMEL@cpan.org> in October 2000. perl v5.18.2 2006-11-21 Round(3)
All times are GMT -4. The time now is 04:15 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy