Shell Scripting
i want to delete bottom line and put in to upper line if it have specific word.
ex
Dell 14 20 31
Hp 16 19
Logi 29 89
HP 21 30
Iph 15 60 59
Hp 20 21 22
Output:
Dell 14 20 31 16 19
Logi 29 89 21 30
Iph 15 60 59 20 21 22
Thanks in Advance.........
Try this...
sed -n 'H; $ {x;s/\n[Hh][Pp]//g;p}' infile
--ahamed
Thanks a lot Ahmamed ..
But can you help on this....
i have same thing but little bit complex..
file1.txt have below input
6120.log:$_port_info = 001200/port_2_dev_16
6120.log:$_port_info = 001200/port_6_dev_17
6120.log:$_port_info = 001200/port_10_dev_18
6120.log:$_port_info = 001200/port_8_dev_7
6120.log:$_port_info = 001200/port_0_dev_5
6120.log:$_port_info = 001200/port_4_dev_6
6120.log:001200/port_2_dev_16
6120.log:vswr: -0.7[dB]
6120.log:001200/port_6_dev_17
6120.log:vswr: 0.0[dB]
6120.log:001200/port_10_dev_18
6120.log:vswr: -0.7[dB]
6120.log:001200/port_8_dev_7
6120.log:vswr: 17.3[dB]
6120.log:001200/port_0_dev_5
6120.log:vswr: 21.9[dB]
6120.log:001200/port_4_dev_6
6120.log:vswr: 19.5[dB]
i need out put like this file2
I want to remove all .log and [db] from all line also remove all unnecessary string and give me output like below......
6120 122 NoVSWR
6120 126 NoVSWR
6120 1210 NoVSWR
6120 128 NoVSWR
6120 120 NoVSWR
6120 124 NoVSWR
6120 122 -0.7
6120 126 0.0
6120 1210 -0.7
6120 128 17.3
6120 120 21.9
6120 124 19.5
Please help me with this .....again thanks a lottttttttttt
Where is the second column data coming from? 122, 120 etc
--ahamed
Ahamed
6120.log:$_port_info = 001200/port_2_dev_16
it will remove all unnecessary string 001200/port_2_dev_16 but i need 12 and 2 with is after port_.
6120.log:$_port_info = 001200/port_2_dev_16 = 6120 122
001200=12 and /port_2 =2 so combine it 122
Thanks for your quick replay brother...
---------- Post updated at 02:14 PM ---------- Previous update was at 12:46 PM ----------
any help please ...........................
awk -F[:/_=] '{end="NoVSWR";sub(/.log/,"");num=$1;gsub(/[0 ]/,"",$(NF-4));port=$(NF-4)$(NF-2)}
$2!="$"{getline;end=$NF+0}{print num,port,end}' infile
--ahamed
Hi
I am getting below error when i run it....
my Script is below...
egrep -e '_dev|vswr:' *.log > $VSWR
awk -F[:/_=] '{end="NoVSWR";sub(/.log/,"");num=$1;gsub(/[0 ]/,"",$(NF-4));port=$(NF-4)$(NF-2)}$2!="$"{getline;end=$NF+0}{print num,port,end}' $VSWR
what error? which is your OS?
--ahamed
error.....
awk: syntax error near line 1
awk: illegal statement near line 1
awk: syntax error near line 1
awk: illegal statement near line 1
---------- Post updated at 11:01 PM ---------- Previous update was at 10:59 PM ----------
I am using Solaris .....
Its works perfect..........
you r genus........
I am using this form first time ......so thanks a lot////
Thanks Ahamed .....great help from you....
I have some changes in input can you please help me to modify my commnad///
Input....
6120.log:001200/port_2_dev_16
6120.log:vswr: -0.7[dB]
6120.log:001200/port_6_dev_17
6120.log:vswr: 0.0[dB]
6120.log:001200/port_10_dev_18
6120.log:vswr: -0.7[dB]
6120.log:001200/port_8_dev_7
6120.log:vswr: 17.3[dB]
6120.log:001200/port_0_dev_5
6120.log:vswr: 21.9[dB]
6120.log:001200/port_4_dev_6
6120.log:vswr: 19.5[dB]
6054.log:001300/port_1_dev_30
6054.log:001300/port_0_dev_29
6054.log:001300/port_2_dev_31
6054.log:001200/port_0_dev_5
6054.log:vswr: 22.9[dB]
Output :
6120 122 -0.7
6120 126 0.0
6120 1210 -0.7
6120 128 17.3
6120 120 21.9
6120 124 19.5
6054 130 N/I
6054 131 N/I
6054 132 N/I
6054 120 22.9
I have below code ......Can you please help me to modify///
nawk -F[:/_=] '{end="N/I";sub(/.log/,"");num=$1;gsub(/[0 ]/,"",$(NF-4));port=$(NF-4)$(NF-2)}$2!="$"{getline;end=$NF+0}{print num,port,end}' file1 file 2
Please help me on this /////