Cut determinate values amb subst for ;


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Cut determinate values amb subst for ;
# 1  
Old 10-02-2012
Cut determinate values amb subst for ;

Hello
I have a output file that contains the next info:
Code:
host_name   LET-234-WDFD-2
 address    10.11.0.62
 host_name   XWERWE-234-WEDF-EMEEH-GIDF-3
 address    10.11.32.48
 host_name   DFG-745-WE-EMEEEH-GIDF-4
 address    10.11.32.176
        host_name                       DFDFG-ERWG-BL-ETH-01-FV
        address                         198.18.1.107
        host_name                       DFDFG-ERWG-BL-ETH-02-FV
        address                         198.18.1.108
        host_name                       DFDFG-WEFEW-WEFWEF-01-ASDS
        address                         10.11.0.108
 host_name   DFDFG-SDF-UKLY-01-FGG
 address    198.18.253.138
 host_name   DFDFG-SDF-UKLY-02-FGG
 address    198.18.253.139
 host_name   DFDFG-SDF-UKLY-01-GGHTFGH2

The objective is delete host_name & adress an put ; to separate host_name and address:
Code:
LET-234-WDFD-2;10.11.0.62
XWERWE-234-WEDF-EMEEH-GIDF-3;10.11.32.48
DFG-745-WE-EMEEEH-GIDF-4;10.11.32.176
DFDFG-ERWG-BL-ETH-01-FV;198.18.1.107
DFDFG-ERWG-BL-ETH-02-FV;198.18.1.108
DFDFG-WEFEW-WEFWEF-01-ASDS;10.11.0.108
DFDFG-SDF-UKLY-01-FGG;198.18.253.138
DFDFG-SDF-UKLY-02-FGG;198.18.253.139

I try with cut, but any result
Could you help me? Thanks

Last edited by Scrutinizer; 10-03-2012 at 07:02 AM.. Reason: code tags instead of quote tags
# 2  
Old 10-02-2012
Assuming a space between the strings and the data,try:
Code:
cut -d' ' -f2- file|paste -sd';\n'

# 3  
Old 10-02-2012
Code:
awk 'FNR%2 {print name, $2;next}{name=$2}' OFS=';' myFile

# 4  
Old 10-03-2012
Hello Thanks for your reply. I try with the metodes and doesn't work :-(. The result is:
Code:
cut -d' ' -f2- file|paste -sd';\n' extractcritiques.txt
 host_name       cedf-ddt              ;       address         10.14.138.3
        host_name       dfb-crft             ;       address         10.14.184.2
        host_name       cesdneb-cerferu             ;       address         10.14.184.3
        host_name       cenfeeb-derfx;     address         10.14.139.10

Code:
awk 'FNR%2 {print name, $2;next}{name=$2}' OFS=';' extractcritiques.txt | more

;cdceb-adn
10.14.176.6;ceneb-fg
10.14.176.7;ceneb-arerfg
10.14.200.4;ceneb-arrefer
10.14.200.5;ceneb-brfer
10.14.244.96;ceneb-sacrf
10.14.244.97;ceneb-cacrf

I think the problem is the space in to the origen file:
Code:
    host_name       cendfseb-ardfdf
        address         10.14.176.6
        host_name       cesdfb-arsdf
        address         10.14.176.7
        host_name       csgb-atg
        address         10.14.200.4
        host_name       certhrteb-artg

Sorry in my first message don't appear the spaces (or tabulations) because I put in (Wrap quote). awk is very interesting. I'm read the documentation in this moment.

Last edited by Scrutinizer; 10-03-2012 at 07:01 AM.. Reason: code tags instead of quote tags
# 5  
Old 10-03-2012
Slight mod to vgersh's awk:
Code:
awk 'FNR%2 {name=$2; next} {print name, $2}' OFS=';' infile

alternatively:
Code:
awk '{name=$2; getline; print name, $2}' OFS=';' infile

This User Gave Thanks to Scrutinizer For This Post:
# 6  
Old 10-03-2012
Thankss!!!!
When I read your reponse I'm try with:
Quote:
awk 'FNR%2 {name=$2}{print name, $2;next}' OFS=';
You win Smilie
# 7  
Old 10-03-2012
small corrections to the suggestions will make them work.
1) remove excess spaces using sed:
Code:
sed 's/  */ /g;s/^ //' extractcritiques.txt|cut -d' ' -f2- |paste -sd';\n'

2) invert the result of the %2:
Code:
awk 'FNR%2==0 {print name, $2;next}{name=$2}' OFS=';' extractcritiques.txt

This User Gave Thanks to RudiC For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Cut command with dynamic passing of delimiter and position values

Hi All, We have a requirement of picking nth position value by using cut command. value would be delimited by any symbols. We have to pass delimited value and postition to get the value in a string. ex. echo "A,B,C,D,E" |cut -d "," -f3 echo "A|B|C|D|E"|cut -d "|" -f2 Kindly frame the... (5 Replies)
Discussion started by: KK230689
5 Replies

2. Shell Programming and Scripting

Using make subst

I have a string of source files ENBL_PX11_LIBSRC = pltsub.f xpltlib.f xbuplot.cI want to replace .f and .c with .o to get ENBL_PX11_LIBOBJ = pltsub.o xpltlib.o xbuplot.o However I am having trouble doing this with subst. (5 Replies)
Discussion started by: kristinu
5 Replies

3. Shell Programming and Scripting

A simple variable subst is not working

Hi what i want: listing files in a special range ls -lrt 20120601{05..06}* ... -rw-rw-r-- 1 imp imp 279 1. Jun 07:51 201206010550 -rw-rw-r-- 1 imp imp 279 1. Jun 07:01 201206010600 -rw-rw-r-- 1 imp imp 279 1. Jun 07:11 201206010610 -rw-rw-r-- 1 imp imp 279 1. Jun 07:21... (1 Reply)
Discussion started by: IMPe
1 Replies

4. UNIX for Dummies Questions & Answers

Cut from tables based on column values

Hello, I have a tab-delimited table that may contain 11,12 or 13 columns. Depending on the number of columns, I want to cut and get a sub table as shown below. However, the awk commands in the code seem to be an issue. What should I be doing differently? #cut columns 1-2,4-5,11 when 12 &... (3 Replies)
Discussion started by: Gussifinknottle
3 Replies

5. Shell Programming and Scripting

CSV with commas in field values, remove duplicates, cut columns

Hi Description of input file I have: ------------------------- 1) CSV with double quotes for string fields. 2) Some string fields have Comma as part of field value. 3) Have Duplicate lines 4) Have 200 columns/fields 5) File size is more than 10GB Description of output file I need:... (4 Replies)
Discussion started by: krishnix
4 Replies

6. Shell Programming and Scripting

Delete character in determinate position with sed/awk

Hello. I'm trying to delete one character in determinate position. Example: qwEtsdf123Ecv34 <delete character in positión 3> Result: qwtsdf123Ecv34 Plase, help me. Thanks (4 Replies)
Discussion started by: maria_florencia
4 Replies

7. UNIX for Dummies Questions & Answers

Parse or cut concat variables to individual values

Hello I need to pass some environment parameters to a datastage job and am getting an error when trying to send the complete concatinated variable. I have decided to parse out just the values and send as parameters but am struggling to find the best way to do this (actually I am not very... (3 Replies)
Discussion started by: LynnC
3 Replies

8. Shell Programming and Scripting

Iterative statement to cut values from a line

Hi I am new to shell scripting and trying to get values from a text file, I have a text file with values seperated with "|". like aga|120220090525|120220090525|120220090525|120220090530 bab|120220090530|120220090530|120220090535|120220090535|120220090535... (4 Replies)
Discussion started by: mannepalli
4 Replies

9. UNIX for Dummies Questions & Answers

to assign cut values to an array

i need to seperate values seperated by delimiters and assign it to an array.. can u plz help me on that. Variables = "asd,rgbh,(,rty,got,),sroe,9034," i need to assign the variables into arrays.. like.. var=asd var=rgbh.. and so on how do i do this. i need to reuse the values stored in... (6 Replies)
Discussion started by: Syms
6 Replies

10. Shell Programming and Scripting

Command param subst to reg expression

I want to find out Row which starts with, the user specified details to a script. In general I know what command to be given. awk '$0~/^Vi/' BReject But I need to pass on $1 param of command line at the place of 'Vi'. I tried with -v subst=$1 awk -v subst=$1 '$0~/^subst/' BReject But it... (5 Replies)
Discussion started by: videsh77
5 Replies
Login or Register to Ask a Question