Using sed or awk


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Using sed or awk
# 8  
Old 01-02-2015
Quote:
Originally Posted by Jared
Below is the snipet from configuration , as you can see :
xe-0/0/0 need to change it to xe-8/0/0.


Code:
set interfaces xe-0/0/0 
set interfaces xe-0/0/0 hold-time up 2000
set interfaces xe-0/0/0 hold-time down 0
set interfaces xe-0/0/0 gigether-options 802.3ad ae10
set interfaces xe-0/0/1 description DO-NOT-USE
set interfaces xe-0/0/2 description test
set interfaces xe-0/0/2 hold-time up 1000
set interfaces xe-0/0/2 hold-time down 0
set interfaces xe-0/0/2 unit 0 family inet filter input ingrees tea
set interfaces xe-0/0/2 unit 0 family inet address 1.1.1.1/30
set interfaces xe-0/0/3 description "Test"
set interfaces xe-0/0/3 hold-time up 1000
set interfaces xe-0/0/3 hold-time down 0
set interfaces xe-0/0/3 unit 0 family inet filter input INGRESS_SAMPLE
set interfaces xe-0/0/3 unit 0 family inet address 2.2.2.1/31
set interfaces xe-0/0/4 description "xe-0/0/1"
set interfaces xe-0/0/4 hold-time up 1000
set interfaces xe-0/0/4 hold-time down 0
set interfaces xe-0/0/4 gigether-options 802.3ad ae12
set interfaces xe-0/0/5 description DO-NOT-USE
set interfaces xe-0/0/6 description "Test"
set interfaces xe-0/0/6 hold-time up 1000
set interfaces xe-0/0/6 hold-time down 0

---------- Post updated at 07:36 PM ---------- Previous update was at 06:28 PM ----------

i am sorry guys, i need to do this in code....here you go guys.

set interfaces xe-0/0/0 set interfaces xe-0/0/0 hold-time up 2000 set interfaces xe-0/0/0 hold-time down 0 set interfaces xe-0/0/0 gigether-options 802.3ad ae10 set interfaces xe-0/0/1 description DO-NOT-USE set interfaces xe-0/0/2 description test set interfaces xe-0/0/2 hold-time up 1000 set interfaces xe-0/0/2 hold-time down 0 set interfaces xe-0/0/2 unit 0 family inet filter input ingrees tea set interfaces xe-0/0/2 unit 0 family inet address 1.1.1.1/30 set interfaces xe-0/0/3 description "Test" set interfaces xe-0/0/3 hold-time up 1000 set interfaces xe-0/0/3 hold-time down 0 set interfaces xe-0/0/3 unit 0 family inet filter input INGRESS_SAMPLE set interfaces xe-0/0/3 unit 0 family inet address 2.2.2.1/31 set interfaces xe-0/0/4 description "xe-0/0/1" set interfaces xe-0/0/4 hold-time up 1000 set interfaces xe-0/0/4 hold-time down 0 set interfaces xe-0/0/4 gigether-options 802.3ad ae12 set interfaces xe-0/0/5 description DO-NOT-USE set interfaces xe-0/0/6 description "Test" set interfaces xe-0/0/6 hold-time up 1000 set interfaces xe-0/0/6 hold-time down 0
I give up. I see ABSOLUTELY nothing in any of the above that explains why:
  1. xe-8/0/0 should be xe-16/0/0,
  2. xe-9/0/0 should be xe-17/0/0, nor
  3. xe-31/0/0 which should become xe-55/0/0
as requested in your 1st post in this thread since none of xe-8/0/0, xe-9/0/0, xe-16/0/0, xe-17/0/0, xe-31/0/0, nor xe-55/0/0 appear in the above message.

You say you need to convert from one naming convention to another naming convention and tell us nothing about either naming convention. If you want help doing this you need to explain both naming conventions and the logic behind converting from the old convention to the new convention.
# 9  
Old 01-02-2015
I doubt this will be much good, but it's all I've come up with that will produce set interfaces xe-55 in the end. I'm still not clear on what the OP has in mind??

Code:
while read yy
do
    set $yy
    bb=${3#*-} 
    aa=${bb%%/*}
    if [ $aa -lt 10 ];then
        dd=$(( $aa + 8 ))
    else
        dd=$(( $aa + ( $aa / 10 * 8 )))
    fi
    echo $yy | sed -e "s|xe-[0-9]*|xe-$dd|"
done < series.data

# output
# ------
# set interfaces xe-16/0/0
# set interfaces xe-19/0/0 hold-time up 2000
# set interfaces xe-37/0/0 hold-time down 0
# set interfaces xe-54/0/0 gigether-options 802.3ad ae10
# set interfaces xe-55/0/1 description DO-NOT-USE
# set interfaces xe-8/0/2 description test

Using this for a data set
Code:
set interfaces xe-8/0/0
set interfaces xe-11/0/0 hold-time up 2000
set interfaces xe-21/0/0 hold-time down 0
set interfaces xe-30/0/0 gigether-options 802.3ad ae10
set interfaces xe-31/0/1 description DO-NOT-USE
set interfaces xe-0/0/2 description test


Last edited by ongoto; 01-02-2015 at 10:39 PM..
# 10  
Old 01-05-2015
i am trying to replace multiple xe- numbers by using the below sed commands. but i like to know if there is any easy way to do it instead the one i am using.

sed -e 's/xe-36/xe-41/g' -e 's/xe-37/xe-51/g' -e 's/xe-38/xe-61/g' <file name>

any help will be appreciated.

---------- Post updated at 08:20 AM ---------- Previous update was at 08:12 AM ----------

guys thanks for your help and patience. wanted to make sure if there is any other easy way of replacing it without mentioning each (xe-) number? using awk or sed?

let me do it again with the correct method.

Code:
 sed -e 's/xe-36/xe-41/g' -e 's/xe-37/xe-51/g' -e 's/xe-38/xe-61/g' testing123

# 11  
Old 01-05-2015
I doubt it doable unless you provide an algorithm or a translation table that gives us the target numbers from the original ones.
# 12  
Old 01-05-2015
Hi ,

I agree it may not be doable but here is the number you requested.

Code:
xe-8/ >xe-16/
xe-9=17
xe-10=18
xe-11=19
xe-12=20
xe-13=21
xe-14=22
xe-15=23
xe-16=32
xe-17=33

thanks!

Last edited by Don Cragun; 01-05-2015 at 06:17 PM.. Reason: Fix CODE tags.
# 13  
Old 01-05-2015
Modify your translation table like so
Code:
xe-0    xe-8
xe-8    xe-16
xe-9    xe-17
xe-10   xe-18
xe-11   xe-19
xe-12   xe-20
xe-13   xe-21
xe-14   xe-22
xe-15   xe-23
xe-16   xe-32
xe-17   xe-33

and try
Code:
awk     'NR==FNR        {T[$1]=$2; next}
                        {split ($3, X, "/")
                         if (X[1] in T) sub(X[1], T[X[1]], $3)
                        }
         1
        '  trtable file

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

sed and awk giving error ./sample.sh: line 13: sed: command not found

Hi, I am running a script sample.sh in bash environment .In the script i am using sed and awk commands which when executed individually from terminal they are getting executed normally but when i give these sed and awk commands in the script it is giving the below errors :- ./sample.sh: line... (12 Replies)
Discussion started by: satishmallidi
12 Replies

2. Shell Programming and Scripting

Is this possible using SED and AWK?

Dear Geeks, I want to manipulate a file with certain modifications for that using sed or AWK how to do this process for one file i have this type of data. Input File: "Restricted and Reserved names .ANISH",3798,"TEST.CO",1201208,6/16/10 0:00,6/16/13 0:00,,,"CO","2nd"^M "Restricted and... (4 Replies)
Discussion started by: anishkumarv
4 Replies

3. UNIX for Dummies Questions & Answers

sed/awk or help please

I have a file that contain the data below: B1 1 2 3 B2 20 30 40 B3 7 8 B4 100 B5 21 22 23How can I retrieve the data for B1 into a seperate file. (8 Replies)
Discussion started by: bobo
8 Replies

4. Shell Programming and Scripting

Need help using awk or sed.

Hi All, Is there a way of comparing two columns in the same file and deleting the row if the values of the columns match. I have the sample data file as below. M024900|175309.00|968.00|17 M025001|19861.79|97.90|148 M025002|431.70|159.00|3 M025003|912.30|159.90|6 ... (6 Replies)
Discussion started by: nua7
6 Replies

5. Shell Programming and Scripting

Using sed or awk?

What if I wanted to add a word such as IT after the first character and if theres 3 characters, after the 2nd character? output would be: G, it H G, H it P G, H, P it L I'm thinking that AWK would be the easiest way to do this... Currently looking it up. Right now I'm using awk but I... (13 Replies)
Discussion started by: puttster
13 Replies

6. UNIX for Dummies Questions & Answers

sed or awk?

I've got an inventory database with eight columns with things like product name, manufacturer, UPC code, etc. on each line. Our PO (purchase order) number is in the first column. I can grep the date and get the full line of data but I would like to strip out everything but the PO number in the... (5 Replies)
Discussion started by: NetJones
5 Replies

7. UNIX for Advanced & Expert Users

Awk or Sed help

Hi, I have a data file with 5 columns - like this: "20080401 09:43:08.770798 +0100s","TEST 1","R 1","A TEST","Nov 27 2007","1" "20080401 09:43:08.770798 +0100s","THIS IS A TEST","R 2","B TEST","Nov 30 2007","10" "20080401 09:43:08.770798 +0100s","ANOTHER TEST","R 3","B TEST","Nov 05... (7 Replies)
Discussion started by: MrG-San
7 Replies

8. UNIX for Advanced & Expert Users

sed in awk ? or nested awk ?

Hey all, Can I put sed command inside the awk action ?? If not then can i do grep in the awk action ?? For ex: awk '$1=="174" { ppid=($2) ; sed -n '/$ppid/p' tempfind.txt ; }' tempfind.txt Assume: 174 is string. Assume: tempfind.txt is used for awk and sed both. tempfind.txt... (11 Replies)
Discussion started by: varungupta
11 Replies

9. Shell Programming and Scripting

sed,awk

Hi, I know sed is stream text editor and not a bit more than that. Can anyone explain its usage and advantages? How is awk different from sed? I donno i am a bit confused about it. But i have coded in awk and shell. Thanks, Nisha :confused: (7 Replies)
Discussion started by: Nisha
7 Replies

10. Shell Programming and Scripting

awk / sed

I have many messages such as the test message below: 00:00000:00021:2002/05/13 13:57:00.51 ERROR:- Test error, my test error!!! I am writing a script in which I need to get everything from the word "ERROR:-" onwards. I normally use awk for these things, but I am not an expert at it so i am... (6 Replies)
Discussion started by: baileyr1
6 Replies
Login or Register to Ask a Question