Sponsored Content
Top Forums Shell Programming and Scripting How to change variable length field? Post 302816367 by Don Cragun on Monday 3rd of June 2013 05:41:04 PM
Old 06-03-2013
It could be done with sed (but I'm not going to bother).

With any shell that recognizes basic Bourne shell syntax:
Code:
while IFS="/ " read -r m d y extra
do      printf "%02d/%02d/%s\n" "$m" "$d" "$y"
done < file

does the job.

The same thing in awk would be:
Code:
awk -F '[/ ]' '{printf("%02d/%02d/%s\n", $1, $2, $3)}' file

If a file named file contains:
Code:
1/1/2013 1:23
1/10/2012 12:25
11/1/2011 1:02:03
12/30/2020 05:06:07

either of the above will produce:
Code:
01/01/2013
01/10/2012
11/01/2011
12/30/2020

If you choose the awk script and you are using a Solaris/SunOS system, use /usr/xpg4/bin/awk, /usr/xpg6/bin/awk, or nawk instead of awk.
=============
Oops, I hadn't noticed your 2nd posting where you said:
Quote:
Input is 7/10/2012 19:21 or 7/10/2012 1:01 or 7/1/2012 23:59 or 7/1/2012 1:01

Want it to be 7/10/2012
I have absolutely no idea how to write general code to determine that the day 1 should be printed as 10.

Should "12/9/2012" be also converted to "12/90/2012" instead of "12/09/2012"?

Last edited by Don Cragun; 06-03-2013 at 07:00 PM..
 

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

Pivot variable record length file and change delimiter

Hi experts. I got a file (500mb max) and need to pivot it (loading into ORCL) and change BLANK delimiter to PIPE |. Sometimes there are multipel BLANKS (as a particular value may be BLANK, or simply two BLANKS instead of one BLANK). thanks for your input! Cheers, Layout... (3 Replies)
Discussion started by: thomasr
3 Replies

3. 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

4. Shell Programming and Scripting

Make variable length record a fixed length

Very, very new to unix scripting and have a unique situation. I have a file of records that contain 3 records types: (H)eader Records (D)etail Records (T)railer Records The Detail records are 82 bytes in length which is perfect. The Header and Trailer records sometimes are 82 bytes in... (3 Replies)
Discussion started by: jclanc8
3 Replies

5. Shell Programming and Scripting

changing a variable length text to a fixed length

Hi, Can anyone help with a effective solution ? I need to change a variable length text field (between 1 - 18 characters) to a fixed length text of 18 characters with the unused portion, at the end, filled with spaces. The text field is actually field 10 of a .csv file however I could cut... (7 Replies)
Discussion started by: dc18
7 Replies

6. Shell Programming and Scripting

Flat file-make field length equal to header length

Hello Everyone, I am stuck with one issue while working on abstract flat file which i have to use as input and load data to table. Input Data- ------ ------------------------ ---- ----------------- WFI001 Xxxxxx Control Work Item A Number of Records ------ ------------------------... (5 Replies)
Discussion started by: sonali.s.more
5 Replies

7. UNIX for Dummies Questions & Answers

change field separator only from nth field until NF

Hi ! input: 111|222|333|aaa|bbb|ccc 999|888|777|nnn|kkk 444|666|555|eee|ttt|ooo|ppp With awk, I am trying to change the FS "|" to "; " only from the 4th field until the end (the number of fields vary between records). In order to get: 111|222|333|aaa; bbb; ccc 999|888|777|nnn; kkk... (1 Reply)
Discussion started by: beca123456
1 Replies

8. Shell Programming and Scripting

Replace a field with a character as per the field length

Hi all, I have a requirement to replace a field with a character as per the length of the field. Suppose i have a file where second field is of 20 character length. I want to replace second field with 20 stars (*). like ******************** As the field is not a fixed one, i want to do the... (2 Replies)
Discussion started by: gani_85
2 Replies

9. UNIX for Dummies Questions & Answers

Help with awk, where line length and field position are variable

I have several questions about using awk. I'm hoping someone could lend me a hand. (I'm also hoping that my questions make sense.) I have a file that contains pipe separated data. Each line has similar data but the number of fields and the field position on each line is variable. ... (3 Replies)
Discussion started by: Cheese64
3 Replies

10. Shell Programming and Scripting

Convert variable length record to fixed length

Hi Team, I have an issue to split the file which is having special chracter(German Char) using awk command. I have a different length records in a file. I am separating the files based on the length using awk command. The command is working fine if the record is not having any... (7 Replies)
Discussion started by: Anthuvan
7 Replies
fwtmp(1M)																 fwtmp(1M)

NAME
fwtmp, wtmpfix - manipulate connect accounting records SYNOPSIS
[files] DESCRIPTION
fwtmp reads from the standard input and writes to the standard output, converting binary records of the type found in to formatted ASCII records. The ASCII version is useful to enable editing, via ed(1), bad records or for general purpose maintenance of the file. The argument is used to denote that input is in ASCII form, and output is to be written in binary form. The arguments and are independent, respectively specifying ASCII input and binary output. Therefor, is an ASCII to ASCII copy and is a binary to binary copy. should be used for reading If is not used, structure is read. wtmpfix examines the standard input or named files in format, corrects the time/date stamps to make the entries consistent, and writes to the stan- dard output. A can be used in place of files to indicate the standard input. If time/date corrections are not performed, will fault when it encounters certain date-change records. Each time the date is set, a pair of date change records is written to The first record is the old date denoted by the string old time placed in the line field and the flag placed in the type field of the structure. The second record specifies the new date, and is denoted by the string placed in the line field and the flag placed in the type field. uses these records to synchronize all time stamps in the file. nullifies date change records when writing to the standard output by setting the time field of the structure in the old date change record equal to the time field in the new date change record. This prevents and from factoring in a date change record pair more than once. In addition to correcting time/date stamps, wtmpfix checks the validity of the name field to ensure that it consists solely of alphanumeric characters or spaces. If it encounters a name that is considered invalid, it changes the login name to and writes a diagnostic to the standard error. This minimizes the risk that will fail when processing connect accounting records. DIAGNOSTICS
wtmpfix generates the following diagnostics messages: WARNINGS
generates no errors, even on garbage input. FILES
SEE ALSO
ed(1), acct(1M), acctcms(1M), acctcom(1M), acctcon(1M), acctmerg(1M), acctprc(1M), acctsh(1M), runacct(1M), acct(2), acct(4), utmp(4), wtmps(4). STANDARDS CONFORMANCE
fwtmp(1M)
All times are GMT -4. The time now is 09:25 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy