Sponsored Content
Top Forums UNIX for Beginners Questions & Answers Parsing a column of text file - best practices Post 302997849 by Don Cragun on Sunday 21st of May 2017 12:54:09 AM
Old 05-21-2017
Quote:
Originally Posted by SIMMS7400
Hi Don -

Thank you.

So it's Linux, therefore I've been able to use Scrutinzer's solution with success:

Code:
echo $(date +CurrentWeek,%m/%d/%y)
echo $(date +CurrentWeekq,'"%m/%d/%y"')
echo $(date +CurrentPeriod,%^b%y)
echo $(date +CurrentPeriodq,'"%^b%y"')
echo $(date +1PeriodPrior,%^b%y)
echo $(date +1PeriodPriorq,'"%^b%y"' --date='1 month ago')
echo $(date +2PeriodPrior,%^b%y)
echo $(date +2PeriodPriorq,'"%^b%y"' --date='2 months ago')
echo $(date +CurrentPlanYear,"FY %Y")
echo $(date +CurrentPlanYearq,'"FY %Y"')

SO thank you both!

I do have a few more questions as to how to grab certain values.

Here are the additional variables:

Code:
CurrentQuarter,FY 2Q2017
CurrentQuarterq,"FY 2Q2017"
PriorQuarter,FY 1Q2017
PriorQuarterq,"FY 1Q2017"

PriorQuarterMnth1,JAN17
PriorQuarterMnth2,FAB17
PriorQuarterMnth3,MAR17
PriorQuarterMnth1q,"JAN17"
PriorQuarterMnth2q,"FEB17"
PriorQuarterMnth3q,"MAR17"

CurrentHalf,FY 1H2017
CurrentHalfq,"FY 1H2017"

I have the following code for the Current and Prior quarters, but I need help putting the output in the correct format (as shown above):

Code:
echo $(date +"%Y %m" | awk '{q=int($2/4)+1; printf("%sq%s\n", $1, q);}')
echo $(date +"%Y %m" | awk '{q=int($2/4);y=$1;if (q==0){q=4;y=y-1;}; printf("%sq%s\n", y, q);}')

As you can see, I also need help deriving PriorQuarter months 1-3.

Thank you for all your help!!
You seem to need some help calculating the quarter as well as the months in a quarter. Three are three months in a quarter; not 4. If you want to know what calendar quarter a given month is in, try:
Code:
quarter=$(((month+2)/3))

Note that if you're using bash (and some other shells) as your shell, the above calculation will fail in August and September if $month contains a leading zero. If you're using ksh, a leading zero won't be a problem. With the GNU date utility, you can get the month number without a leading zero with:
Code:
month=$(date +%-m)

or with any date utility and any shell that supports parameter substitutions required by the POSIX standards:
Code:
month=$(date +%m)
month=${month#0}

To find months 1, 2, and 3 in a quarter, try:
Code:
month1=$((quarter*3-2))
month2=$((quarter*3-1))
month3=$((quarter*3))

Second note that to work properly, I think you'd need to change two of Scrutinizer's suggestions:
Code:
echo $(date +1PeriodPrior,%^b%y)
echo $(date +1PeriodPriorq,'"%^b%y"' --date='1 month ago')
echo $(date +2PeriodPrior,%^b%y)
echo $(date +2PeriodPriorq,'"%^b%y"' --date='2 months ago')

to:
Code:
echo $(date +1PeriodPrior,%^b%y --date='1 month ago')
echo $(date +1PeriodPriorq,'"%^b%y"' --date='1 month ago')
echo $(date +2PeriodPrior,%^b%y) --date='2 months ago'
echo $(date +2PeriodPriorq,'"%^b%y"' --date='2 months ago')

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Text File Parsing

Hey Guys.I am a newbie on Bash Shell Scripting and Perl.And I have a question about file parsing. I have a log file which contains reports about a communication device.I need to take some of the reports from the log file.Its hard to explain the issue.but shortly I can say that, the reports has a... (2 Replies)
Discussion started by: Djlethal
2 Replies

2. Shell Programming and Scripting

Parsing text from file

Any ideas? 1)loop through text file 2)extract everything between SOL and EOL 3)output files, for example: 123.txt and 124.txt for the file below So far I have: sed -n "/SOL/,/EOL/{p;/EOL/q;}" file Here is an example of my text file. SOL-123.go something goes here something goes... (0 Replies)
Discussion started by: ndnkyd
0 Replies

3. Shell Programming and Scripting

Column wise file parsing.

Shell script for the below operation : File "A" contains : SEQ++1' MOA+9:000,00:ABC' RFF+AIK:000000007' FII+PH+0170++AA' NAD+PL+++XXXXXXXXXXX XXXXXXX XX++XXX XXXX XXXX X.X. XXXXXXXXX+++NL' SEQ++2' MOA+9:389,47:ABC' RFF+AIK:02110300000008' FII+PH+0PSTBNL2A:25:5+BB'... (5 Replies)
Discussion started by: navojit dutta
5 Replies

4. Shell Programming and Scripting

Need help parsing a text file

I have a text file: router1#sh ip blah blah | incl --- Gi2/8 10.60.4.181 --- 10.60.123.175 11 0000 0000 355K Gi2/8 10.60.83.28 --- 224.10.10.26 11 F9FF 3840 154K Gi2/8 10.60.83.198 --- ... (1 Reply)
Discussion started by: streetfighter2
1 Replies

5. UNIX for Dummies Questions & Answers

Replacing a specific column of a text file with another column

I have a text file in the following format: 13412 NA06985 0 0 2 46.6432798439 4 4 4 4 13412 NA06991 NA06993 NA06985 2 48.8478948517 4 4 2 4 13412 NA06993 0 0 1 45.8022601455 4 4 2 4 13401 NA06994 0 0 1 48.780669145 4 4 4 4 13401 NA07000 0 0 2 47.7312017846 2 4 4 4 13402 NA07019... (3 Replies)
Discussion started by: evelibertine
3 Replies

6. UNIX for Dummies Questions & Answers

Replacing a specific column of a text file with another column

Hi, I have a text file in the following format: Code: 13412 NA06985 0 0 2 46.6432798439 4 4 4 4 13412 NA06991 NA06993 NA06985 2 48.8478948517 4 4 2 4 13412 NA06993 0 0 1 45.8022601455 4 4 2 4 13401 NA06994 0 0 1 48.780669145 4 4 4 4 13401 NA07000 0 0 2 47.7312017846 2 4 4 4 ... (2 Replies)
Discussion started by: evelibertine
2 Replies

7. Programming

Parsing a Text file using C++

I was trying to parse the text file, which will looks like this ###XYZABC#### ############ int = 4 char = 1 float = 1 . . ############ like this my text file will contains lots of entries and I need to store these entries in the map eg. map.first = int and map.second = 4 same way I... (5 Replies)
Discussion started by: agupta2
5 Replies

8. Shell Programming and Scripting

Parsing text file

I'm totally stumped with how to handle this huge text file I'm trying to deal with. I really need some help! Here is what is looks like: ab1ba67c331a3d731396322fad8dd71a3b627f89359827697645c806091c40b9 0.2 812a3c3684310045f1cb3157bf5eebc4379804e98c82b56f3944564e7bf5dab5 0.6 0.6... (3 Replies)
Discussion started by: comp8765
3 Replies

9. Shell Programming and Scripting

Parsing text file

Hi Friends, I am back for the second round today - :D My input text file is this way Home friends friendship meter Tools Mirrors Downloads My Data About Us Help My own results BLAT Search Results ACTIONS QUERY SCORE START END QSIZE IDENTITY CHRO STRAND ... (7 Replies)
Discussion started by: jacobs.smith
7 Replies

10. Shell Programming and Scripting

Parsing a fixed column text file in sed

I have a text file with records of the form: A X1 Y1 X2 Y2 X3 Y3 where A is character length 10, Xi is character length 4 and Yi is numeric length 10. I want to parse the line, and output records like: A X1 Y1 A X2 Y2 A X3 Y3 etc Can anyone please give me an idea of how to do this. ... (4 Replies)
Discussion started by: wvdeijk
4 Replies
All times are GMT -4. The time now is 01:03 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy