Sponsored Content
Top Forums UNIX for Dummies Questions & Answers Add a field separator (comma) inside a line of a CSV file Post 302905474 by Don Cragun on Wednesday 11th of June 2014 06:58:37 PM
Old 06-11-2014
Quote:
Originally Posted by Tawpie
(thanks Mod for adding the code tags -- it wasn't "code" per say so it didn't dawn on me. I'll be better, promise!)
Please use CODE tags for sample input, output, and code. The CODE tags preserve the differences between spaces and tabs and keep multiple adjacent spaces distinct. Without the CODE tags, long input lines can be split and whitespace characters can be coalesced into single spaces.

If your input contains lines where the 5th field does not contain any spaces (and you still want to add a comma to create an empty new 6th field before the original 6th field), you could try:
Code:
awk -F, 'sub(/ |$/, ",", $5)' OFS=, file

With the input:
Code:
Field 1,Field 2 is here,Field 3 is a bit more verbose,Field 4,Fifth field,Field 6
Field 1,Field 2 is here,Field 3 is a bit more verbose,Field 4,Fifth field more,Field 6
Field 1,Field 2 is here,Field 3 is a bit more verbose,Field 4,Fifth,Field 6
Field 1,Field 2 is here,Field 3 is a bit more verbose,Field 4,,Field 6

it produces the output:
Code:
Field 1,Field 2 is here,Field 3 is a bit more verbose,Field 4,Fifth,field,Field 6
Field 1,Field 2 is here,Field 3 is a bit more verbose,Field 4,Fifth,field more,Field 6
Field 1,Field 2 is here,Field 3 is a bit more verbose,Field 4,Fifth,,Field 6
Field 1,Field 2 is here,Field 3 is a bit more verbose,Field 4,,,Field 6

This User Gave Thanks to Don Cragun For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to add text to a field within a csv file

I have a csv file which has three columns mem no. name surname 1234 John Smith 12345 John Doe I want to change the mem no. to add TF to the mem no. field i.e. mem no. name surname 1234TF John Smith 12345TF John Doe How do you do this for all records in the file? (3 Replies)
Discussion started by: Pablo_beezo
3 Replies

2. Shell Programming and Scripting

awk, comma as field separator and text inside double quotes as a field.

Hi, all I need to get fields in a line that are separated by commas, some of the fields are enclosed with double quotes, and they are supposed to be treated as a single field even if there are commas inside the quotes. sample input: for this line, 5 fields are supposed to be extracted, they... (8 Replies)
Discussion started by: kevintse
8 Replies

3. Shell Programming and Scripting

Removing comma "," in a field value in csv file

Hi, I have csv file with records as below. Now i have remove any comma in the filed value because that creates problem when i feed this file to an application. for example below are two sample records, the second record have a comma in "Salesforce.com, Inc." field, now i have to remove this... (13 Replies)
Discussion started by: anaga
13 Replies

4. Shell Programming and Scripting

how to convert comma delimited file to tab separator

Hi all, How can i convert comma delimited .csv file to tab separate using sed command or script. Thanks, Krupa (4 Replies)
Discussion started by: krupasindhu18
4 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

Compare two CSV files and put the difference in third file with line no,field no and diff value.

I am having two csv files i need to compare these files and the output file should have the information of the differences at the field level. For Example, File 1: A,B,C,D,E,F 1,2,3,4,5,6 File 2: A,C,B,D,E,F 1,2,4,5,5,6 out put file: (12 Replies)
Discussion started by: karingulanagara
12 Replies

7. Shell Programming and Scripting

CSV file column separator

Hi, I have a CSV file of 40 columns with "," as delimiter. I want to assign the value of each column to a variable. But some of the columns content inside contains "," so how can i split the columns and assign it to a variable. Regards, ARASU. (1 Reply)
Discussion started by: Arasu123
1 Replies

8. Shell Programming and Scripting

How can i comma-delimited last field in line?

Awk gurus, Greatly appreciate for any kind of assistance from the expert community Input line: abc,11.22.33.44,xyz,7-8-9-10 pqr,111.222.333.444,wxy,1-2-3 def,22.33.44.55,stu,7-8 used the gsub function below but it changes all of the "-" delimiter: awk 'gsub("-",",")' Desired... (4 Replies)
Discussion started by: ux4me
4 Replies

9. Shell Programming and Scripting

Use two field separator in the same line and print them

Hi Guys, I have the file --- HOST_NAME,data_coleta,data_carga,CPU_util,CPU_idle,run_queue,memory,MEMORY_SYSTEM,MEMORY_TOTAL,MEMORY_SWAPIN,MEMORY_SWAPOUT,DISK_READ,DISK_WRITE,DISK_IO,NET_IN_PACKET, NET_OUT_PACKET... (4 Replies)
Discussion started by: antoniorajr
4 Replies

10. Shell Programming and Scripting

How can awk ignore the field delimiter like comma inside a field?

We have a csv file as mentioned below and the requirement is to change the date format in file as mentioned below. Current file (file.csv) ---------------------- empname,date_of_join,dept,date_of_resignation ram,08/09/2015,sales,21/06/2016 "akash,sahu",08/10/2015,IT,21/07/2016 ... (6 Replies)
Discussion started by: gopal.biswal
6 Replies
Mail::Field::Date(3)					User Contributed Perl Documentation				      Mail::Field::Date(3)

NAME
Mail::Field::Date - a date header field INHERITANCE
Mail::Field::Date is a Mail::Field SYNOPSIS
use HTTP::Date 'time2iso'; my $field = Mail::Field->new(Date => time2iso()); DESCRIPTION
Represents one "Date" header field. See documentation in the base class. METHODS
See documentation in the base class. Constructors See documentation in the base class. Mail::Field::Date->combine(FIELDS) See "Constructors" in Mail::Field Mail::Field::Date->extract(TAG, HEAD [, INDEX ]) See "Constructors" in Mail::Field Mail::Field::Date->new(TAG [, STRING | OPTIONS]) See "Constructors" in Mail::Field "Fake" constructors See documentation in the base class. $obj->create(OPTIONS) See ""Fake" constructors" in Mail::Field $obj->parse() See ""Fake" constructors" in Mail::Field Accessors See documentation in the base class. $obj->set(OPTIONS) -Option --Default Time undef TimeStr undef Time => SECONDS TimeStr => STRING A string acceptable to Date::Parse. $obj->stringify() See "Accessors" in Mail::Field $obj->tag() Mail::Field::Date->tag() See "Accessors" in Mail::Field Smart accessors See documentation in the base class. $obj->text([STRING]) See "Smart accessors" in Mail::Field $obj->time([TIME]) Query (or change) the TIME (as stored in the field) in seconds. DETAILS
See documentation in the base class. DIAGNOSTICS
Error: Undefined subroutine <method> called Mail::Field objects use autoloading to compile new functionality. Apparently, the method called is not implemented for the specific class of the field object. SEE ALSO
This module is part of the MailTools distribution, http://perl.overmeer.net/mailtools/. AUTHORS
The MailTools bundle was developed by Graham Barr. Later, Mark Overmeer took over maintenance without commitment to further development. Mail::Cap by Gisle Aas <aas@oslonett.no>. Mail::Field::AddrList by Peter Orbaek <poe@cit.dk>. Mail::Mailer and Mail::Send by Tim Bunce <Tim.Bunce@ig.co.uk>. For other contributors see ChangeLog. LICENSE
Copyrights 1995-2000 Graham Barr <gbarr@pobox.com> and 2001-2007 Mark Overmeer <perl@overmeer.net>. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See http://www.perl.com/perl/misc/Artistic.html perl v5.18.2 2014-01-05 Mail::Field::Date(3)
All times are GMT -4. The time now is 11:08 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy