Sponsored Content
Top Forums Shell Programming and Scripting Replace Date in a fixed length file Post 302633571 by fpmurphy on Wednesday 2nd of May 2012 07:36:32 AM
Old 05-02-2012
Since OP originally asked for ksh solution ....
Code:
#!/bin/ksh93

month=$(printf "%(%m)T" "now")
thisyear=$(printf "%(%y)T" "now")
lastyear=$(printf "%(%y)T" "last year")

while read x
do
    if [[ "${x:6:2}" == "  " ]]
    then
        if [[ ${x:8:2} -ge $month ]]
        then
            echo "${x:0:6}${thisyear}${x:8}"
        else
            echo "${x:0:6}${lastyear}${x:8}"
        fi
    else
        echo $x
    fi
done < infile

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

creating a fixed length output from a variable length input

Is there a command that sets a variable length? I have a input of a variable length field but my output for that field needs to be set to 32 char. Is there such a command? I am on a sun box running ksh Thanks (2 Replies)
Discussion started by: r1500
2 Replies

2. Shell Programming and Scripting

Manipulating a fixed length file w/o PERL

Greetings, I need to take a fixed length file, similar to the following: <input file> 1233 e 612 i 43378 f 03 x 22 17 e 9899 a 323e a6 z7 read in the character in position 6, and if that character = e, delete that line from the file. <output file> 43378 f 03 x 22 17 e 9899 ... (4 Replies)
Discussion started by: dabear
4 Replies

3. Shell Programming and Scripting

sed replace with fixed length

$ cat template s.noName $ sed "s/s.no/1/" template > out $ sed "s/s.no/100/" template >>out $ cat out 1Name 100Name 1 Name 100Name (7 Replies)
Discussion started by: McLan
7 Replies

4. UNIX for Dummies Questions & Answers

What the command to find out the record length of a fixed length file?

I want to find out the record length of a fixed length file? I forgot the command. Any body know? (9 Replies)
Discussion started by: tranq01
9 Replies

5. UNIX for Dummies Questions & Answers

Convert a tab delimited/variable length file to fixed length file

Hi, all. I need to convert a file tab delimited/variable length file in AIX to a fixed lenght file delimited by spaces. This is the input file: 10200002<tab>US$ COM<tab>16/12/2008<tab>2,3775<tab>2,3783 19300978<tab>EURO<tab>16/12/2008<tab>3,28523<tab>3,28657 And this is the expected... (2 Replies)
Discussion started by: Everton_Silveir
2 Replies

6. Shell Programming and Scripting

search and replace fixed length record file

Hi I need to be search a file of fixed length records and when I hit a particular record that match a search string, substitute a known position field In the example file below FHEAD000000000120090806143011 THEAD0000000002Y0000000012 P00000000000000001234 TTAIL0000000003... (0 Replies)
Discussion started by: nedkelly007
0 Replies

7. Shell Programming and Scripting

Search and replace particular characters in fixed length-file

Masters, I have fixed length input file like FHEAD0000000001XXXX20090901 0000009000Y1000XXX2 THEAD000000000220090901 ITM0000109393813 430143504352N22SP 000000000000RN000000010000EA P0000000000000014390020090901 TTAIL0000000003000000 FTAIL00000000040000000002 Note... (4 Replies)
Discussion started by: bittoo
4 Replies

8. Shell Programming and Scripting

Remove characters from fixed length file

Hello I've question on the requirement I am working on. We are getting a fixed length file with "33" characters long. We are processing that file loading into DB. Now some times we are getting a file with "35" characters long. In this case I have to remove two characters (in 22,23... (14 Replies)
Discussion started by: manasvi24
14 Replies

9. UNIX for Dummies Questions & Answers

Length of a fixed width file

I have a fixed width file of length 53. when is try to get the lengh of the record of that file i get 2 different answers. awk '{print length;exit}' <File_name> The above code gives me length 50. wc -L <File_name> The above code gives me length 53. Please clarify on... (2 Replies)
Discussion started by: Amrutha24
2 Replies

10. Shell Programming and Scripting

Replace and Increment a value in the fixed length file

Hi Everyone, I need to increment a value in the fixed length file. The file has almost a million rows. Is there any easy way to accomplish this. Ex input file ASDSD ADSD 00000 X AAASD ADSD 00000 X SDDDD ADSD 00000 X Ouput ASDSD ADSD 00001 X AAASD ADSD 00002 X SDDDD ADSD 00003 X ... (7 Replies)
Discussion started by: saratha14
7 Replies
print(1)							   User Commands							  print(1)

NAME
print - shell built-in function to output characters to the screen or window SYNOPSIS
ksh print [-Rnprsu [n]] [arg]... ksh93 print [-Renprs] [-f format] [-u fd] [string...] DESCRIPTION
ksh The shell output mechanism. When no options are specified, or when an option followed by ' a - is specified, or when just - is specified, the arguments are printed on standard output as described by echo(1). ksh93 By default, print writes each string operand to standard output and appends a NEWLINE character. Unless, the -r, -R, or -f option is speciifed, each character in each string operand is processed specially as follows: a Alert character.  Backspace character. c Terminate output without appending NEWLINE. The remaining string operands are ignored. E Escape character (ASCII octal 033). f FORM FEED character. NEWLINE character. Tab character. v Vertical tab character. \ Backslash character. x The 8-bit character whose ASCII code is the 1-, 2-, or 3-digit octal number x. OPTIONS
ksh The following options are supported by ksh: -n Suppresses new-line from being added to the output. -r-R Raw mode. Ignore the escape conventions of echo. The -R option prints all subsequent arguments and options other than -n. -p Cause the arguments to be written onto the pipe of the process spawned with |& instead of standard output. -s Cause the arguments to be written onto the history file instead of standard output. -u [ n ] Specify a one digit file descriptor unit number n on which the output is placed. The default is 1. ksh93 The following options are supported by ksh93: -e Unless -f is specified, process sequences in each string operand as described above. This is the default behavior. If both -e and -r are specified, the last one specified is the one that is used. -f format Write the string arguments using the format string format and do not append a NEWLINE. See printf(1) for details on how to specify format. When the -f option is specified and there are more string operands than format specifiers, the format string is reprocessed from the beginning. If there are fewer string operands than format specifiers, then outputting ends at the first unneeded for- mat specifier. -n Do not append a NEWLINE character to the output. -p Write to the current co-process instead of standard output. -r Do not process sequences in each string operand as described above. -R If both -e and -r are specified, the last one specified is the one that is used. -s Write the output as an entry in the shell history file instead of standard output. -u fd Write to file descriptor number fd instead of standard output. The default value is 1. EXIT STATUS
The following exit values are returned: 0 Successful completion. >0 Output file is not open for writing. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Availability |SUNWcsu | +-----------------------------+-----------------------------+ SEE ALSO
echo(1), ksh(1), ksh93(1), printf(1), attributes(5) SunOS 5.11 27 Mar 2008 print(1)
All times are GMT -4. The time now is 03:16 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy