Help with re-organize data by adding "-" in empty place


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help with re-organize data by adding "-" in empty place
# 1  
Old 09-29-2011
Help with re-organize data by adding "-" in empty place

Input file
Code:
data_1 data_2 A B C
data_1 data_2   B D
data_1 data_2 A   C
data_1 data_2 A 
data_1 data_2   B C
data_1 data_2     C
data_1 data_2 A B
data_1 data_2   
data_1 data_2 C B A
.
.

Output file
Code:
data_1 data_2 A B C
data_1 data_2 - B D
data_1 data_2 A - C
data_1 data_2 A - -
data_1 data_2 - B C
data_1 data_2 - - C
data_1 data_2 A B -
data_1 data_2 - - -  
data_1 data_2 C B A

My input data have 5 column. However some of the line might missing the content in column 3, column 4, or column 5 randomly.
My purpose is filled up all those empty content with "-"
I got try to use awk with the if else condition.
Unfortunately, it can't work.
Thanks for any advice
# 2  
Old 09-29-2011
PERL

Hi,
Try this code,

Code:
#! /usr/local/bin/perl

open(FILE,"<File1") or die "Unable to open file";

while ( <FILE> )
{
   my $mLine = $_;
   $mLine =~ s/\s/-/g;
   print "$mLine\n";

Here File1 is input file.

Cheers,
RangaSmilie

Last edited by rangarasan; 09-29-2011 at 03:43 AM.. Reason: specify the input file.
This User Gave Thanks to rangarasan For This Post:
# 3  
Old 09-29-2011
Quote:
Originally Posted by rangarasan
Hi,
Try this code,

Code:
#! /usr/local/bin/perl
 
open(FILE,"<File1") or die "Unable to open file";
 
while ( <FILE> )
{
   my $mLine = $_;
   $mLine =~ s/\s/-/g;
   print "$mLine\n";

Here File1 is input file.

Cheers,
RangaSmilie
# while loop is not closed.
# file is not closed
# and this code will replace all the space to - (hypen)

---------- Post updated at 12:40 PM ---------- Previous update was at 12:34 PM ----------

Code:
 
$ cat test
data_1 data_2 A B C
data_1 data_2   B D
data_1 data_2 A   C
data_1 data_2 A    
data_1 data_2   B C
data_1 data_2     C
data_1 data_2 A B  
data_1 data_2      
data_1 data_2 C B A
 
 
$ perl -lane '$_ =~ s/\s\s/ -/g;print $_;' test 
data_1 data_2 A B C
data_1 data_2 - B D
data_1 data_2 A - C
data_1 data_2 A - -
data_1 data_2 - B C
data_1 data_2 - - C
data_1 data_2 A B -
data_1 data_2 - - -
data_1 data_2 C B A

This User Gave Thanks to itkamaraj For This Post:
# 4  
Old 09-29-2011
Code:
awk '{gsub(/  /," -"); if(NF==3){$3=$3" - -"} if(NF==4)$4=$4" -"  }1' infput_file

Considering it will have only 5 data fields

--ahamed
Login or Register to Ask a Question

Previous Thread | Next Thread

7 More Discussions You Might Find Interesting

1. AIX

Apache 2.4 directory cannot display "Last modified" "Size" "Description"

Hi 2 all, i have had AIX 7.2 :/# /usr/IBMAHS/bin/apachectl -v Server version: Apache/2.4.12 (Unix) Server built: May 25 2015 04:58:27 :/#:/# /usr/IBMAHS/bin/apachectl -M Loaded Modules: core_module (static) so_module (static) http_module (static) mpm_worker_module (static) ... (3 Replies)
Discussion started by: penchev
3 Replies

2. Shell Programming and Scripting

Bash script - Print an ascii file using specific font "Latin Modern Mono 12" "regular" "9"

Hello. System : opensuse leap 42.3 I have a bash script that build a text file. I would like the last command doing : print_cmd -o page-left=43 -o page-right=22 -o page-top=28 -o page-bottom=43 -o font=LatinModernMono12:regular:9 some_file.txt where : print_cmd ::= some printing... (1 Reply)
Discussion started by: jcdole
1 Replies

3. UNIX for Dummies Questions & Answers

Using "mailx" command to read "to" and "cc" email addreses from input file

How to use "mailx" command to do e-mail reading the input file containing email address, where column 1 has name and column 2 containing “To” e-mail address and column 3 contains “cc” e-mail address to include with same email. Sample input file, email.txt Below is an sample code where... (2 Replies)
Discussion started by: asjaiswal
2 Replies

4. Post Here to Contact Site Administrators and Moderators

Suggestion: adding two new groups "sed" and "awk"

Majority of the questions are pertaining file/string parsing w.r.t sed or awk It would be nice to have these two as their own sub category under shell-programming-scripting which can avoid lot of duplicate posts. (1 Reply)
Discussion started by: jville
1 Replies

5. Shell Programming and Scripting

awk command to replace ";" with "|" and ""|" at diferent places in line of file

Hi, I have line in input file as below: 3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL My expected output for line in the file must be : "1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL" Can someone... (7 Replies)
Discussion started by: shis100
7 Replies

6. UNIX for Dummies Questions & Answers

Explain the line "mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'`"

Hi Friends, Can any of you explain me about the below line of code? mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'` Im not able to understand, what exactly it is doing :confused: Any help would be useful for me. Lokesha (4 Replies)
Discussion started by: Lokesha
4 Replies

7. Shell Programming and Scripting

check input = "empty" and "numeric"

Hi how to check input is "empty" and "numeric" in ksh? e.g: ./myscript.ksh k output show: invalid number input ./myscript.ksh output show: no input ./myscript.ksh 10 output show: input is numeric (6 Replies)
Discussion started by: geoffry
6 Replies
Login or Register to Ask a Question