spaces to tabs - group with IP


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting spaces to tabs - group with IP
# 15  
Old 01-04-2011
@Scrutinizer;

i have tried your solution so many times but still same Smilie The output of your result is:
Code:
	192.168.1.1     ParameterObject=1       Speech  1
        ParameterObject=2       Speech  1
        ParamFunction=1 UserID  1(DEACTIVATED)
        Sector=1,Device=2,Unit=3        DeviceId        1
        FeederCable=2B  DelayTime       i[15]= 1248 1248 1248
        FeederCable=2C  DelayTime       i[15]= 1248 1248 1248
        FeederCable=2D  DelayTime       i[15]= 1248 1248 1248
        Function=1      MeanTime        i[24]= 0 0 0 0 0
        FileLocation=1  Address /c/user/
	192.168.2.1     ParameterObject=1       Speech  2
        ParameterObject=2       Speech  2
        ParamFunction=1 UserID  1(DEACTIVATED)
        Sector=1,Device=2,Unit=3        DeviceId        1
        FeederCable=2A  DelayTime       i[25]= 3248 1248 1248
        FeederCable=2A  DelayTime       i[25]= 3248 1248 1248
        FeederCable=2A  DelayTime       i[25]= 3248 1248 1248
        Function=1      MeanTime        i[24]= 0 0 0 0 0
        FileLocation=1  Address /c/user/

but i need:
Code:
192.168.1.1     ParameterObject=1       Speech  1
        ParameterObject=2       Speech  1
        ParamFunction=1 UserID  1(DEACTIVATED)
        Sector=1,Device=2,Unit=3        DeviceId        1
        FeederCable=2B  DelayTime       i[15]= 1248 1248 1248
        FeederCable=2C  DelayTime       i[15]= 1248 1248 1248
        FeederCable=2D  DelayTime       i[15]= 1248 1248 1248
        Function=1      MeanTime        i[24]= 0 0 0 0 0
        FileLocation=1  Address /c/user/
192.168.2.1     ParameterObject=1       Speech  2
        ParameterObject=2       Speech  2
        ParamFunction=1 UserID  1(DEACTIVATED)
        Sector=1,Device=2,Unit=3        DeviceId        1
        FeederCable=2A  DelayTime       i[25]= 3248 1248 1248
        FeederCable=2A  DelayTime       i[25]= 3248 1248 1248
        FeederCable=2A  DelayTime       i[25]= 3248 1248 1248
        Function=1      MeanTime        i[24]= 0 0 0 0 0
        FileLocation=1  Address /c/user/

will you please write a code that says:
- delete just a first character (it is \t) of line starting with IP.

the most similar result to mine is "your" solution. just a piece of small code is enough to do it..

thx Smilie
# 16  
Old 01-04-2011
I am really puzzled where that TAB would come from because my solution does not write it, so there is nothing to remove. Are you on Solaris and do you need to use awk? Could you post your an input file sample as an example?

Code:
$ awk 'NF==1&&p!=$1{printf "\n%s",p=$1} NF>1{$1=$1;sub($1" "$2" ","\t"$1"\t"$2"\t");print}' infile

192.168.1.1     ParameterObject=1       Speech  1
        ParameterObject=2       Speech  1
        ParamFunction=1 UserID  1 (DEACTIVATED)
        Sector=1,Device=2,Unit=3        DeviceId        1
        FeederCable=2B  DelayTime       i[15] = 1248 1248 1248
        FeederCable=2C  DelayTime       i[15] = 1248 1248 1248
        FeederCable=2D  DelayTime       i[15] = 1248 1248 1248
        Function=1      MeanTime        i[24] = 0 0 0 0 0
        FileLocation=1  Address /c/user/

192.168.2.1     ParameterObject=1       Speech  2
        ParameterObject=2       Speech  2
        ParamFunction=1 UserID  1 (DEACTIVATED)
        Sector=1,Device=2,Unit=3        DeviceId        1
        FeederCable=2A  DelayTime       i[25] = 3248 1248 1248
        FeederCable=2A  DelayTime       i[25] = 3248 1248 1248
        FeederCable=2A  DelayTime       i[25] = 3248 1248 1248
        Function=1      MeanTime        i[24] = 0 0 0 0 0
        FileLocation=1  Address /c/user/

---------- Post updated at 16:08 ---------- Previous update was at 16:04 ----------

Does this give a different result?
Code:
awk '/^[0-9]/&&p!=$1{printf "\n%s",p=$1} NF>1{$1=$1;sub($1" "$2" ","\t"$1"\t"$2"\t");print}' infile

# 17  
Old 01-04-2011
yes, i am on Solaris and i am making your results to nawk .... since your solutions are always with awk, i am using awk.

i have already posted my exact file to you.

your last solution gave:
Code:
192.168.1.1	192.168.1.1     ParameterObject=1       Speech  1
        ParameterObject=2       Speech  1
        ParamFunction=1 UserID  1 (DEACTIVATED)
        Sector=1,Device=2,Unit=3        DeviceId        1
        FeederCable=2B  DelayTime       i[15] = 1248 1248 1248
        FeederCable=2C  DelayTime       i[15] = 1248 1248 1248
        FeederCable=2D  DelayTime       i[15] = 1248 1248 1248
        Function=1      MeanTime        i[24] = 0 0 0 0 0
        FileLocation=1  Address /c/user/

192.168.2.1	192.168.2.1     ParameterObject=1       Speech  2
        ParameterObject=2       Speech  2
        ParamFunction=1 UserID  1 (DEACTIVATED)
        Sector=1,Device=2,Unit=3        DeviceId        1
        FeederCable=2A  DelayTime       i[25] = 3248 1248 1248
        FeederCable=2A  DelayTime       i[25] = 3248 1248 1248
        FeederCable=2A  DelayTime       i[25] = 3248 1248 1248
        Function=1      MeanTime        i[24] = 0 0 0 0 0
        FileLocation=1  Address /c/user/

it has repeated IP.
# 18  
Old 01-04-2011
On Solaris you should always use nawk or /usr/xpg4/bin/awk . Do they give the same results?

---------- Post updated at 16:36 ---------- Previous update was at 16:33 ----------

Try this alternative:
Code:
awk '/^[0-9]/&&p!=$1{printf "\n%s",p=$1;next} NF>1{$1=$1;sub($1" "$2" ","\t"$1"\t"$2"\t");print}' infile

Can it be that you have CRLF terminated file? What happens when you convert the file from DOS to Unix format? That would mess up the NF variable...
# 19  
Old 01-04-2011
ok Scruti. it is ok now. i have realized my mistake. i had pointed wrong file Smilie you have a perfect solution as always. this is the code:

Code:
nawk '/^[0-9]/&&p!=$1{printf "\n%s",p=$1} NF>1{$1=$1;sub($1" "$2" ","\t"$1"\t"$2"\t");print}' file.txt

thanks very much Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Grab line regardless of if it ends with tabs or spaces

so i have a data file that has various lines which may or may not end with spaces or tabs. data.file: , \t \t {sample} <spaces> <spaaces> several more spaces.... {"resemble"}, <nospaces> Command i'm using: sed -n 8p data.file | egrep "\],$|\],\ $" or egrep "\],$|\],\ $"... (1 Reply)
Discussion started by: SkySmart
1 Replies

2. UNIX for Advanced & Expert Users

Vimrc creating tabs instead of spaces

I'm having trouble getting my vimrc to work the way I want it. For some reason after I hit enter it is creating tabs instead of spaces like I would expect. Here is an example of what I am talking about. $ = newline, ^I = tab. On the line of struct EDGETAG* q; I hit enter and it created a tab... (2 Replies)
Discussion started by: cokedude
2 Replies

3. Shell Programming and Scripting

Remove spaces / tabs from variable in script

I want to remove extra spaces from variable in aix script. We retrieve the data from oracle database and then print the values. We have a value on 90th position. When we execute the query on sqlplus it shows the length of 90th position as 3, but when we use the same query in aix script it shows... (5 Replies)
Discussion started by: lodhi1978
5 Replies

4. Shell Programming and Scripting

replace spaces/tabs with delimiter |

Hi, I'm looking for a command that replaces spaces/tabs with pipe symbol and store the result to the same file instead of routing it to another file. infile outfile Thanks. (11 Replies)
Discussion started by: dvah
11 Replies

5. Shell Programming and Scripting

Replacing tabs with spaces

I want my program to replace tabs with spaces.1tab=4spaces.When i write aa(tab)aaa(tab)(tab)a(tab) it must show me aaxxaaaxxxxxaxxx. I think that my program works corectly but when a write aaa(tab)a it must show aaaxa but it is aaaxxxxxa.Please for help!!! That is my code: #include <stdio.h> ... (3 Replies)
Discussion started by: marto1914
3 Replies

6. Shell Programming and Scripting

clear extra spaces and tabs in a file

Any help appreciated Thanks sample input: > (extra spaces&tabs in here) test1 (extra spaces&tabs in here) 123.123.123.123 (extra spaces&tabs in here) abc (extra spaces&tabs in here) 123 --- < (extra spaces&tabs in... (3 Replies)
Discussion started by: goofist
3 Replies

7. UNIX for Dummies Questions & Answers

Problem with White spaces and tabs

Hi All, I am facing issues converting white spaces and tabs together in a file I am reading. Here is the command I am trying: tr -s ' '@ | sort -t@ +1n filename I guess the problem is that it is not converting the tabs to another delimiter. Also, I am supposed to accomplish this only using... (5 Replies)
Discussion started by: sh_kk
5 Replies

8. Shell Programming and Scripting

spaces or Tabs?

When formatting a script let's say for instance the following: case ${choice} in 1) vi ${tmp1}.tmp # overwrite the tmp1 var with any user changes cp ${tmp1}.tmp ${tmp1} ;; ... (2 Replies)
Discussion started by: llsmr777
2 Replies

9. Shell Programming and Scripting

replacing tabs to spaces from files

hi, I have some 50 C files in which for indentation of code some devlopers used tabs, but we dont want any tab used for indentation. I have following 2 need. 1) find tabs from all 50 files (which are in one directory ) 2) replace them with 4 spaces. Thanks Rishi (6 Replies)
Discussion started by: rishir
6 Replies

10. Shell Programming and Scripting

Converting tabs in to spaces.

Hi! I'm using SunOS 5.7 w/ Bash 2.01. Currently, I'm working on a script that will make it possible to find textfiles which match certain criteria. While I write this message, I had some brainfarts, found the answer myself :D and the question I had in mind is now no longer the question I... (3 Replies)
Discussion started by: indo1144
3 Replies
Login or Register to Ask a Question