Sponsored Content
Top Forums UNIX for Beginners Questions & Answers Best way to increment weeks based on fiscal start year Post 303005742 by RudiC on Sunday 22nd of October 2017 04:49:42 PM
Old 10-22-2017
How about
Code:
while IFS=", " read PW WK FY; do WK=$(( ${WK##*[a-z]}%53 + 1 )); printf "$PW, 'wk%02d $FY\n" $WK; done < file
curwk_d, 'wk05 fy18';
pw1_d, 'wk04 fy18';
pw2_d, 'wk03 fy18';
pw3_d, 'wk02 fy18';
pw4_d, 'wk01 fy17';
p5w_d, 'wk53 fy17';
p6w_d, 'wk52 fy17';
p7w_d, 'wk51 fy17';
p8w_d, 'wk50 fy17';
p9w_d, 'wk49 fy17';
p10w_d, 'wk48 fy17';
p11w_d, 'wk47 fy17';
p12w_d, 'wk46 fy17';

and / or
Code:
while IFS=", " read PW WK FY; do WK=$(( ${WK##*[a-z]}%53 + 1 )); printf "alter system set variable $PW, 'wk%02d $FY\n" $WK; done < file
alter system set variable curwk_d, 'wk05 fy18';
alter system set variable pw1_d, 'wk04 fy18';
alter system set variable pw2_d, 'wk03 fy18';
alter system set variable pw3_d, 'wk02 fy18';
alter system set variable pw4_d, 'wk01 fy17';
alter system set variable p5w_d, 'wk53 fy17';
alter system set variable p6w_d, 'wk52 fy17';
alter system set variable p7w_d, 'wk51 fy17';
alter system set variable p8w_d, 'wk50 fy17';
alter system set variable p9w_d, 'wk49 fy17';
alter system set variable p10w_d, 'wk48 fy17';
alter system set variable p11w_d, 'wk47 fy17';
alter system set variable p12w_d, 'wk46 fy17';

EDIT: Sorry, I had overlooked the fiscal year's increment on change from week 53 to 1. Here it is:
Code:
while IFS=", " read PW WK FY
  do    WKO=${WK##*[a-z]}
        WK=$(( WKO%53 + 1 ))
        FY="${FY//[a-z;\']/}"
        [ "$WKO" -gt "$WK" ] && (( FY++ ))
        printf "alter system set variable %s, 'wk%02d fy%s';\n" $PW $WK $FY
  done < file


Last edited by RudiC; 10-22-2017 at 06:14 PM.. Reason: correcting logical error
This User Gave Thanks to RudiC For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How many weeks in a year

Hi, I search how i could do to find if a year (for example 2004, 1989, 2058) has 52 or 53 weeks... Have you a idea for me please??? (1 Reply)
Discussion started by: Castelior
1 Replies

2. Solaris

Number of files - in start of year

Is there any way to find "Number of files" that exists on my solaris parition in the starting of 2009 year ? I know ctime or mtime will not help and unix wouldnt store creation time. Only hope i can see ( and i am not sure if that will help ) is that my system is up from last 2 years without... (5 Replies)
Discussion started by: rajwinder
5 Replies

3. Shell Programming and Scripting

how to increment days according to year & month

Hiii i have a file with data as shown below: a.dat: RAO 1900 2 7 0 0 0.00 10.8000 76.8000 10.0 0 0.00 0 6.00 0.00 0.00 0 0.00 6.00 0 NULL LEE 1901 2 15 0 0 0.00 26.0000 100.0000 0.0 0 0.00 0 0.00 0.00 0.00 0 6.00 6.00 0 NULL RAO 1901 4... (3 Replies)
Discussion started by: reva
3 Replies

4. Shell Programming and Scripting

My PM has told me to learn shell scripting in 2 weeks , how should I start?

My PM has told me to learn shell scrting in 2 weeks , how should I start?:confused::confused::confused::confused: (1 Reply)
Discussion started by: manalisharmabe
1 Replies

5. Shell Programming and Scripting

Value Increment based on count

Hi All, I have source file x.txt 0001|0003 0031|0031 0045|0049 My desired output should be: y.txt 0001 0002 0003 0031 0045 0046 0047 (11 Replies)
Discussion started by: kmsekhar
11 Replies

6. Shell Programming and Scripting

How to calculate the total number of weeks from a specify year?

Hi anyone can help? How to calculate total number of weeks from a specify date, for example, 01 Jan 2012. Thx! (2 Replies)
Discussion started by: rayray2013
2 Replies

7. Shell Programming and Scripting

Create new file with increment column based on conditions

Hello, Using bash script, i need to process the following file: 887,86,,2013-11-06,1,10030,5,2,0,200,, 887,86,,2013-11-05,1,10030,5,2,0,199,, 887,138,,2013-11-06,1,10031,6,2,0,1610612736,, 887,164,,2013-11-06,1,10000,0,2,0,36000,, and to create a new file such as the below ... (2 Replies)
Discussion started by: JonhyDeep
2 Replies

8. Shell Programming and Scripting

Increment with awk - how to define start value

Hello, I am running under ubuntu18.04 My question is about awk. inputfile 0wo010011oasasds sdjhsdjh=, u12812888 8jsjkahsjajnsanakn akjskjskj=, suhuhuhwx kskkxmsnnxsnjxsnjxsnjjnjjdi=, 22878ssssss Below code adds consecutive numbers when string = is found run_code: awk -F'=' -v OFS='='... (4 Replies)
Discussion started by: baris35
4 Replies

9. Web Development

Color a Badge Based on the Weeks the Member is Active in the Latest Sequence

Hi Ravinder, Could you (and anyone else who wants to help out) check this PHP code and confirm it does what I expect it to do, which is to color a badge based on the weeks a member is active in the latest sequence? I did a cut-paste-change from my "days in sequence" PHP prototype script and it... (6 Replies)
Discussion started by: Neo
6 Replies

10. UNIX for Beginners Questions & Answers

Splitting week start date and end date based on custom period start dates

Below are my custom period start and end dates based on a calender, these dates are placed in a file, for each period i need to split into three weeks for each period row, example is given below. Could you please help out to achieve solution through shell script.. File content: ... (2 Replies)
Discussion started by: nani2019
2 Replies
FAXALTER(1)                                                   General Commands Manual                                                  FAXALTER(1)

NAME
faxalter - alter parameters of a HylaFAX job queued for transmission SYNOPSIS
faxalter [ options ] id... DESCRIPTION
faxalter changes the state of one or more HylaFAX jobs that are queued for transmission. Numerous parameters can be altered; see the options below. An id is a number that identifies a job that has been submitted to HylaFAX; these numbers are printed by sendfax(1) when jobs are queued for transmission and can also be displayed with faxstat(1). Unprivileged users can alter the parameters of jobs that they own; clients with administrative privileges on a server can manipulate any job (see the -A option below). The user may be specified by the FAXUSER environment variable. By default, faxalter contacts the facsimile server on the host specified in the FAXSERVER environment variable; but consult the -h option for more information. OPTIONS
-a time Specify a new time to send a job. The syntax for specifying a time is the same as used by sendfax(1) (and at(1)). -d destination Change the destination number to destination. -h host Force the server to be contacted on a specific host. The host may be either a symbolic name or a network address. If no -h option is supplied, faxalter uses the FAXSERVER environment variable to identify the HylaFAX server to contact. If this variable is not set, then faxalter checks for a setting in the configuration files (first in the per-user file and then in the system-wide file). If all of the above fails, then faxalter attempts to contact a server on the machine where it is run. -A Use administrative privileges; faxalter will prompt for the password to set administrative privileges. -k time Specify a new time to kill a job; the syntax is the same as used for the -a option. -m modem Assign/reassign the jobs to the specified modem. Specifying ``any'' for modem causes the jobs to be scheduled for any available modem. -p The jobs should be pushed; that is, they should be requeued with a time-to-send as the current time (this is equivalent to ``-a now''). -P pri Set the scheduling priority for the specified jobs. The priority is an integer value in the range 0-255; lower values give a job higher priority. The default scheduling priority for a job is 127 and priorities are recalculated after each attempt to process a job. -r Resubmits a job. This will duplicate any job that is in either the send queue or in the done queue. When resubmitting jobs that are past their killtime the -k option should also be used to specify a new time to kill the job. -t tries Set the maximum number of times the server should call the remote fax machine. -n scheme Select a notification scheme to use for the specified jobs. Possible schemes are: ``none'' for no notification (default), ``when done'' for notification when the job is completed, ``when requeued'' for notification when the job is requeued after a failed transmission attempt. The -Q, -D, and -R options are shorthand for these notification schemes, respectively. One can also leave off ``when'' when using the -n option; e.g., ``done'' instead of ``when done''. -v Trace the protocol exchanges between faxalter and the remote hfaxd process. Tracing information is written to the standard out- put. -Z range Change the page range to be faxed to range CONFIGURATION PARAMETERS
faxalter reads configuration information from the file /etc/hylafax/hyla.conf and then from the file ~/.hylarc. Configuration files follow the conventions described in hylafax-client(1). The following configuration parameters are recognized: Tag Type Default Description Host string localhost host to contact for service PassiveMode boolean false whether or not to use passive mode Port integer 4559 port to use in contacting server Protocol string tcp protocol to use in contacting server Verbose boolean No whether or not to enable protocol tracing The configuration parameters are explained below: Host The host to contact for service. (Equivalent to the -h option.) PassiveMode Whether or not to use passive mode in communication with the server. Port The network port to contact for service. (Equivalent to the -h option.) Protocol The name of the communication protocol to use when contacting a server. (Equivalent to the FAXSERVICE environment variable.) Verbose Control protocol tracing. (Equivalent to the -v option.) NOTES
Setting a job's killtime without also setting the time to send may cause the wrong value for the killtime to be sent. This is because the killtime is calculated as the difference in time between the killtime and time to send: and if the time to send is not specified, then fax- alter uses the current time instead of querying the server for the job's time to send. faxalter suspends a job before attempting to alter its state. If a job is active when a suspend request is made there may be a delay while waiting for the job to enter a consistent state where it can be suspended. If faxalter is interrupted during this time then jobs may be left suspended. faxalter requeues the job. This means that the job will end up at the bottom of the queue for the job's priority. Thus, when queues are heavy an adjustment of the job's killtime may need to be considered when altering any other parameter. faxalter only understands how to alter a subset of the available job parameters; there are many more client-controllable parameters that can only be modified by communicating directly with the server using the underlying protocol. The continued use of the at(1)-style notation for specifying times is questionable (it was done for backwards compatibility). SEE ALSO
hylafax-client(1), sendfax(1), faxrm(1), faxstat(1), hfaxd(8) July 11, 1996 FAXALTER(1)
All times are GMT -4. The time now is 01:38 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy