Replace a field in a comma separated file


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Replace a field in a comma separated file
# 8  
Old 03-05-2020
Two comments:

- the shell does not expand variables enclosed in single quotes. Use double quotes.

- no translation space -> comma needed, just change the field separator in awk's split command.

Like
Code:
$ set -- FN 5 8
$ shift
$ awk -F, -v"FLDS=$*" '
BEGIN                   {FCNT = split(FLDS, FLD, " ")
                        }

function CV(IX)         {TMP = (19+$(IX-1))*1E6 + $(IX)
                         Y   = int(TMP/1E4)
                         return sprintf ("%d-%02d-%02d", Y, int(TMP%Y/100), TMP%100)
                        }

                        {for (i=1; i<=FCNT; i++) $FLD[i] = $FLD[i] ? CV(FLD[i]) : "0001-01-01"  
                        }
1
' OFS=, file
29,A Store,A Street,1,2011-12-13,aaaa,0,1989-12-13
30,B Store,B Street,0,1999-12-13,aaaa,1,2006-12-13
31,C Store,C Street,1,2005-12-13,aaaaa,1,2008-12-13
32,D Store,D Street,0,0001-01-01,aaaa,1,2015-03-23
33,E Store,E Street,1,2012-12-12,bbbb,0,0001-01-01
34,F Store,F Street,1,2010-12-12,cccc,0,1997-12-12


Last edited by RudiC; 03-06-2020 at 11:41 AM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk to parse comma separated field and removing comma in between number and double quotes

Hi Experts, Please support I have below data in file in comma seperated, but 4th column is containing comma in between numbers, bcz of which when i tried to parse the file the column 6th value(5049641141) is being removed from the file and value(222.82) in column 5 becoming value of column6. ... (3 Replies)
Discussion started by: as7951
3 Replies

2. Shell Programming and Scripting

Comma separated to rows based on field

Hi to all, I have a file like: chr1 a1 a2 a3 a4 a5 a6,a7,a8,a9 chr1 b1 b2 b3 b4 b5 b6,b7 chr2 c1 c2 c3 c4 c5 c6,c7,c8,c9,c10 ... I would like an output like this: chr1 a6 chr1 a7 chr1 a8 chr1 a9 chr1 b6 chr1 b7 chr2 c6 chr2 c7 chr2 c8 (6 Replies)
Discussion started by: aec
6 Replies

3. UNIX for Dummies Questions & Answers

[solved] Comma separated values to space separated

Hi, I have a large number of files which are written as csv (comma-separated values). Does anyone know of simple sed/awk command do achieve this? Thanks! ---------- Post updated at 10:59 AM ---------- Previous update was at 10:54 AM ---------- Guess I asked this too soon. Found the... (0 Replies)
Discussion started by: lost.identity
0 Replies

4. Shell Programming and Scripting

How to split the comma separated file?

Hi, I have a filein unix like ABC,CDE BCD,KHL and the output i need is like column1 column2 ABC,CDE ABC ABC,CDE CDE BCD,KHL BCD BCD,KHL KHL. Can some body help me out? Hi, The code is working fine. But in my file each row does not have always 1 comma. It may... (6 Replies)
Discussion started by: jagdishrout
6 Replies

5. Shell Programming and Scripting

Need Help - comma inside double quote in comma separated csv,

Hello there, I have a comma separated csv , and all the text field is wrapped by double quote. Issue is some text field contain comma as well inside double quote. so it is difficult to process. Input in the csv file is , 1,234,"abc,12,gh","GH234TY",34 I need output like below,... (8 Replies)
Discussion started by: Uttam Maji
8 Replies

6. Shell Programming and Scripting

Comma separated file

Hi all, I have the following files types: FileA: 100, 23, 33, FileB: 22, 45, 78, and i want to make File C: 100,22 23,45 33,78 any nice suggestions for making it easy. (3 Replies)
Discussion started by: hen1610
3 Replies

7. Shell Programming and Scripting

Inserting string in between field in comma separated file

Hello Mates, I have one txt file having commo seperated values. I have to insert string "FALSE" in 2nd field from the end. E.G SE18 6RN,,,,5439070,1786840,,1000002148671600,123434 Out put should be: SE18 6RN,,,,5439070,1786840,FALSE,1000002148671600,123434 Can some one help me to... (8 Replies)
Discussion started by: krsnadasa
8 Replies

8. Shell Programming and Scripting

How to format file into comma separated field

Guys, Need you help, i have a a file content that look like this. Nokia 3330 <spaces><spaces><more spaces>+76451883874 Nokia 3610 +87467361615 so on and so forth, - there are so many spaces in between. - e.g.... (5 Replies)
Discussion started by: shtobias
5 Replies

9. Shell Programming and Scripting

Replace comma by space for specified field in record

Hi, i want to replace comma by space for specified field in record, i mean i want to replace the commas in the 4th field by space. and rest all is same throught the record. the record is 16458,99,001,"RIMOUSKI, QC",418,"N",7,EST,EDT,902 16458,99,002,"CHANDLER,... (5 Replies)
Discussion started by: raghavendra.cse
5 Replies

10. Shell Programming and Scripting

Its PERL + Comma separated seventh field

Hi Friends, I'm working on a perl script, which seems to be simpler. But I'm very new to PERL scripting. I have a comma separated data file, from which I need to extract only the seventh field data out of available twenty fields to an array using perl. Any help would be much appreciated. ... (17 Replies)
Discussion started by: ganapati
17 Replies
Login or Register to Ask a Question
edauth(8)						      System Manager's Manual							 edauth(8)

Name
       edauth - edit user auth entry

Syntax
       edauth username

Description
       The  command  is an authorization editor.  creates a temporary file with an ASCII representation of the current database entry for the user
       specified by username and then invokes an editor on the file.  You can then modify the user's fields.  Upon leaving the editor,	reads  the
       temporary file and modifies the binary database to reflect the changes made.  If there are errors in the temporary file will allow the user
       to resume editing the file to fix them.

       The editor invoked is unless the environment variable EDITOR specifies otherwise.  Here is an example of the temporary file produced by
       uid = 268
       password = MXP3BnKLEWW960BEJc9DbHb6
       passlifemin = 1 hour
       passlifemax = 60 days
       passmod = 12/20/89 - 10:24:38
       authmask = login,change_password,enter_password
       fail_count = 0
       audit_id = 268
       audit_control = or
       audit_syscalls = creat,unlink
       audit_tevents = login:0:1
       Each field of the entry is represented as a keyword followed by an equals sign.	The value part of the field may be an integer, a string, a
       time specification, a date, or a comma-separated list of value keywords.  The effect of the field is described in

       The and fields expect integer values.

       The field is a string containing the encrypted password.  One way of disabling an account is to set this to a non-empty string less than 24
       characters in length such as `nologin'.

       The and fields specify the password expiration information. They may contain an integer specifying seconds, or a combination of scaled val-
       ues.  The units recognized for scaling are and Only the first letter of the unit need be supplied.  A of one day, one hour and five minutes
       could be specified as any of:
       passlifemax = 1 day 1 hour 5 minutes
       passlifemax = 25 h 5 m
       passlifemax = 90300 seconds
       passlifemax = 90300
       in addition to other combinations.

       The field is a date.  It is specified in the same format as the default output of the ULTRIX command.  The time	portion  is  optional  and
       defaults to the beginning of the day.

       The and fields expect a comma-separated list of value tokens. For this is zero or more of and For the audit information this corresponds to
       the name of the audit event.  See the manpage for more information on audit events.

       The field may be one of or See the manpage for more information on the affect of these values.

Restrictions
       Only the superuser can edit entries.

       Changing the entry will not affect the uid and audit information of existing login sessions.

       If the uid field of the entry is changed the mapping to the file will be affected.  Changes to the passwd file will probably be necessary.

Diagnostics
       Various messages about incorrect input. All are self-explanatory.

Files
       Contains all authorization information

       Maps usernames to UIDs

See Also
       audcntl(2), auth(5), auditmask(8), getauth(8), vipw(8)
       Security Guide for Administrators

																	 edauth(8)