Sponsored Content
Top Forums UNIX for Beginners Questions & Answers Use portion of file name as new file name Post 302996464 by Raul_Rodriguez on Wednesday 26th of April 2017 01:23:50 PM
Old 04-26-2017
@RudiC
Code:
$ awk -F, '
 BEGIN   {months ["JAN"]="AP01"; months ["FEB"]="AP02"; months ["MAR"]="AP03";
          months ["APR"]="AP04"; months ["MAY"]="AP05"; months ["JUN"]="AP06";
          months ["JUL"]="AP07"; months ["AUG"]="AP08"; months ["SEP"]="AP09";
          months ["OCT"]="AP10"; months ["NOV"]="AP11"; months ["DEC"]="AP12";
         }
         {TMP = FILENAME
          sub (/\.*$/, "", TMP)
          print "a_" TMP "_ACTUAL_"months[substr($3,0,3)]"20" substr($3,5,2)"_RR.txt"
         }
 ' *.txt

The above code works fine in Cygwin, it was also working fine back in December 2016. Our infrastructure team states that nothing has changed at the server level (Solaris); however, the script now generates an error and it fails to execute. The error reads: "awk: syntax error near line 8
awk: illegal statement near line 8.
Line 8 is the setting of the variable FILENAME.
I have only one additional line in the code that is not showing here and it is only a changing of folder directory, this is set on the very first line before
Code:
awk -F

Another odd thing that is worth noting is that if hard code the file name, the script runs successfully.

Could you shed any light on what can cause this issue.

your help is greatly appreciated

---------- Post updated at 01:23 PM ---------- Previous update was at 01:06 PM ----------

This is is the script without the variable(Runs successfully)
Code:
$ awk -F, '
 BEGIN   {months ["JAN"]="AP01"; months ["FEB"]="AP02"; months ["MAR"]="AP03";
          months ["APR"]="AP04"; months ["MAY"]="AP05"; months ["JUN"]="AP06";
          months ["JUL"]="AP07"; months ["AUG"]="AP08"; months ["SEP"]="AP09";
          months ["OCT"]="AP10"; months ["NOV"]="AP11"; months ["DEC"]="AP12";
         }
         {
          print "a_" STHCSPHFM "ACTUAL_"months[substr($3,0,3)]"20" substr($3,5,2)"_RR.txt"
         }' STHCSPHFM.txt .txt

But the script is more valueable when it processes multiple files with different file names.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

remove portion of file

Can anyone tell me how to remove a portion of a large file to smaller ones? What I have is a large file that was created becasue several similar files were joined together. Each individual file starts with MSG_HEAD. I want to take everything from MSG_HEAD up to were it says MSG_HEAD again and... (13 Replies)
Discussion started by: methos
13 Replies

2. Shell Programming and Scripting

Separate a portion of text file into another file

Hi, I have my input as follows : I have given two entries- From system Mon Aug 1 23:52:47 2005 Source !100000006!: Impact !100000005!: High Status ! 7!: New Last Name+!100000001!: First Name+ !100000003!: ... (4 Replies)
Discussion started by: srikanth_ksv
4 Replies

3. Programming

Delete Portion of a file

hi i would like to know whether i can delete a part of a file in C for eg. if my file contained 1234567890 and i want to delete 456 so that it becomes 1237890 is there a way i can do this. well, one way i can achieve this is by creating a new file, copy whatever i want, then delete the... (2 Replies)
Discussion started by: sameersbn
2 Replies

4. UNIX for Dummies Questions & Answers

Print a portion of file

Hi, I have a little problem. I am having a file with pattern like : asdf;ffgg;dfjfj;djdfjf;nnjj;djd;ssj; I just want to print the portion from last ";" upto the immediate previous ";". There are several ";" in my line. Please help me out... Thnx in advance (8 Replies)
Discussion started by: vanand420
8 Replies

5. Shell Programming and Scripting

Grep certain portion from the file

Dear Friends, Here I am with another difficulty. I have a flat file from which I wanna grep following pattern. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Statement Date : Blah blah Blah blah Blah blah Blah blah... (1 Reply)
Discussion started by: anushree.a
1 Replies

6. UNIX for Dummies Questions & Answers

Portion of a file in a new files

Hi, I need to devide one file into 3 files based on column numbers and put a string (FILE1, FILE2, FILE3) in the last..... Input file: Column1,Column2,Column3,Column4,Column5,Column6,Column7,Column8,Column9,Column10 Output1: Column1,Column3,Column6,Column4,Column5,FILE1 Output2:... (6 Replies)
Discussion started by: yale_work
6 Replies

7. Shell Programming and Scripting

Rename portion of file based on another file

Hello, I've been searching and reading, but I can't figure out how to solve this problem with my newbie skills. In my directory, I have a list of files (see dirlist.txt attachment) that I need to merge and rename. I have part of the code of the code figured out (see below). However, I... (3 Replies)
Discussion started by: anjulka
3 Replies

8. UNIX for Advanced & Expert Users

Removing portion of file name

Hi , I am getting file name like ABC_DATA_CUSTIOMERS_20120617.dat ABC_DATA_PRODUCTS_20120617.dat Need to convert CUSTIOMERS.dat PRODUCTS.dat Help me how to do this. (7 Replies)
Discussion started by: reach_malu
7 Replies

9. Shell Programming and Scripting

Unix Scripting : Sort a Portion of a File and not the complete file

Need to sort a portion of a file in a Alphabetical Order. Example : The user adam is not sorted and the user should get sorted. I don't want the complete file to get sorted. Currently All_users.txt contains the following lines. ############## # ARS USERS ############## mike, Mike... (6 Replies)
Discussion started by: evrurs
6 Replies

10. UNIX for Dummies Questions & Answers

How to append portion of a file content to another file when a certain pattern is matching?

Hi ladies and gentleman.. I have two text file with me. I need to replace one of the file content to another file if one both files have a matching pattern. Example: text1.txt: ABCD 1234567,HELLO_WORLDA,HELLO_WORLDB DCBA 3456789,HELLO_WORLDE,HELLO_WORLDF text2.txt: XXXX,ABCD... (25 Replies)
Discussion started by: bananamen
25 Replies
atprint(3)						       AtFS Toolkit Library							atprint(3)

NAME
atWriteStatus, atWriteMode, atWriteDate, atWriteName, atScanStatus - print and scan special attribute values SYNOPSIS
#include <atfs.h> #include <atfstk.h> char*atWriteStatus (Af_key *aso; int verbose); char*atWriteMode (Af_key *aso); char*atWriteDate (Af_key *aso, char *dateAttribute); char*atWriteName (Af_key *aso, char *path); int atScanStatus (char *statusStr); DESCRIPTION
atWriteStatus returns a string representation of Asos AF_STATE attribute. With the verbose argument TRUE, atWriteStatus returns a long (8 character) status name. Otherwise, on FALSE, it returns a one character short representation. The result value is a statically defined string in any case. atWriteMode generates a ls -l(1) like (e.g. -rwxr-xr-x) string representation of the AF_MODE attribute. It returns its result in static memory, which will be overwritten on subsequent calls. atWriteDate produces a date string from the given dateAttribute to be used for ls -l(1) like output (e.g. Jan 8 11:07 or Jul 10 1992). The format of the date string depends on the value of the date attribute. The string is always 12 characters long and begins with the month and day. For dates younger than 6 months, the third field is the time, for dates older than 6 months, the year. The result string resides in static memory, which will be overwritten on subsequent calls. atWriteName generates a bound pathname from path and aso. atScanStatus converts an status string to an internal numeric status value. It understands various abbreviations, including the one charac- ter status strings generated by atWriteStatus. .BUGS The format switch in afWriteDate (for dates older than six months) does not happen at exactly the right time. It may be a few days later. AtFStk-1.12 Fri Jun 25 16:39:43 1993 atprint(3)
All times are GMT -4. The time now is 04:31 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy