My current draft script which is not perfect is to use “sed” to replace “/24” with “255.255.255.0” format. This is part of network subnetting conversion.
This is to print the initial net.txt value and save the final output to net-mask.txt
sed 's/\/8/ 255.0.0.0/'
sed 's/\/16/ 255.255.0.0/'
sed 's/\/24/ 255.255.255.0/'
or
Quote:
sed 's#/8# 255.0.0.0#'
sed 's#/16# 255.255.0.0#'
sed 's#/24# 255.255.255.0#'
Or course the sed script for CIDR to netmask table above is not complete. The full list of the conversion can be found here. Netmask / CIDR Translation Table
Please let me know where is the best place to put “sed” into my shell script file.
If there is better way to do this, please let me know. Thanks in advance.
Last edited by type8code0; 12-05-2014 at 12:05 AM..
Hi all, the value in the following file is just an example. It could be a different value/network addresses.
Here is my example of initial output in a file name net.txt
Initial Output, net.txt
The goal is to produce the following format which is to convert from CIDR to Netmask formatting.
My current draft script which is not perfect is to use “sed” to replace “/24” with “255.255.255.0” format. This is part of network subnetting conversion.
This is to print the initial net.txt value and save the final output to net-mask.txt
or
Or course the sed script for CIDR to netmask table above is not complete. The full list of the conversion can be found here. Netmask / CIDR Translation Table
Please let me know where is the best place to put “sed” into my shell script file.
If there is better way to do this, please let me know. Thanks in advance.
Hello type8code0,
Following may help you in same.
Output will be as follows. EDIT: Also kindly use code tags for commands and codes not quotes, quotes you can use to address any user's speicific post etc purposes like I have used above for your post, you can go through the forum rules in below link.
There is a syntax error in the above code: The quote in front of $1 is superfluous.
Apart from that, in this particular case (input file contains only one column) the above code is essentially the same as cp net.txt net-mask.txt
Quote:
Please let me know where is the best place to put “sed” into my shell script file.
If you plan to use it for modification of net-mask.txt, then it certainly should be placed below the awk command.
Note I used sed's -i option for inplace editing, otherwise things get complicated, e.g.
Quote:
And of course, if there is better way to do this, please let me know.
Sure.
I think you get the idea now and will be able to extend this code to match other CIDRs
Last edited by junior-helper; 12-05-2014 at 01:20 AM..
Reason: grammar
This User Gave Thanks to junior-helper For This Post:
Following may help you in same.
Output will be as follows. EDIT: Also kindly use code tags for commands and codes not quotes, quotes you can use to address any user's speicific post etc purposes like I have used above for your post, you can go through the forum rules in below link.
Cool. I’ll just need to add the rest of CIDR to Netmask conversion.
I’ll share the full bash script later once it’s complete.
I’ll take note on code vs quotes. Thanks again I really appreciate it.
Here is the sample of the output. ---------- Post updated at 01:22 AM ---------- Previous update was at 01:09 AM ----------
Quote:
Originally Posted by junior-helper
There is a syntax error in the above code: The quote in front of $1 is superfluous.
Apart from that, in this particular case (input file contains only one column) the above code is essentially the same as cp net.txt net-mask.txt
If you plan to use it for modification of net-mask.txt, then it certainly should be placed below the awk command.
Note I used sed's -i option for inplace editing, otherwise things get complicated, e.g.
Sure.
I think you get the idea now and will be able to extend this code to match other CIDRs
Awesome! You’re definitely senior-helper. Thanks again for your help I really appreciate it.
Here is the full code. Hopefully others will get benefit from this too.
And here is the output
Next project is to reverse this process which is to convert from netmask to CIDR form
---------- Post updated at 01:34 AM ---------- Previous update was at 01:22 AM ----------
Quote:
Originally Posted by RudiC
This task is almost impossible in awk as it doesn't have bit operations. But, in (recent) bash, you could try this:
Many thanks RudiC
This forum is super cool. One question, multiple solutions provided and each of them is unique.
And here is the output
I just have one question on this script. Is it possible to remove /8,/16, and /24 from the output and use a space instead of tab?
Please let me know if there is a way to reverse this process from CIDR to netmask formatting.
---------- Post updated at 01:52 AM ---------- Previous update was at 01:34 AM ----------
Quote:
Originally Posted by Corona688
My original solution, from your original thread, still does exactly what you say you want. Did you ever try it?
Your solution is perfect. Thanks again. I noticed you've added "< infile > outfile" to this script. I'm new to the shell script and it's so fun learning it by solving daily problem and make things easier.
I've updated the input and output file name and here is the sample of the output. Please let me know how to reverse this process as well from netmask to CIDR formatting.
Last edited by type8code0; 12-05-2014 at 01:42 PM..
I have the below string which i need to compare with a file and replace this string in the file which matches closely. Can anyone help me on this.
string(Scenario 1)- user::r--,user::ourfrd:r--
String(Scenario 2)- user::r--
File
****
# file: /local/Desktop/myfile
# owner: me
# group:... (6 Replies)
I have two files blocks.txt and rules.txt. In blocks.txt i have the following entries
Linux1
Linux2
Linux3
.....
Linux10
In rules.txt i have the lines where a filename pattern starts like
'blk-name.*'
I want to replace 'blk-name' with the names read from blocks.txt file
I tried... (2 Replies)
Sorry for the long/weird title but I'm stuck on a problem I have. I have this XML file:
</member>
<member>
<name>TransactionID</name>
<value><string>123456789123456</string></value>
</member>
<member>
<name>Number</name>
... (9 Replies)
Hi Everyone,
I have a requirement in ksh where i have a set of files in a directory. I need to search each and every file if a particular string is present in the file, delete that line and replace that line with another string expression in the same file.
I am very new to unix. Kindly help... (10 Replies)
Hello Forum.
I have a file called abc.sed with the following commands;
s/1/one/g
s/2/two/g
...
I also have a second file called abc.dat and would like to substitute all occurrences of "1 with one", "2 with two", etc and create a new file called abc_new.dat
sed -f abc.sed abc.dat >... (10 Replies)
Dear all,
I have a number of files and each file has two sections separated by a blank line. At the top section, I have lines which describes the values of the alphabetical characters,
# s #; 0.123
# p #; 12.3
# d #; -2.33
# f #; 5.68
<blank line>
sssssss
spfdffff
sdfffffff
Now I... (4 Replies)
here is what i want to achieve... consider a file contains below contents. the file size is large about 60mb
cat dump.sql
INSERT INTO `table1` (`id`, `action`, `date`, `descrip`, `lastModified`) VALUES (1,'Change','2011-05-05 00:00:00','Account Updated','2012-02-10... (10 Replies)
Can someone tell me how I can do this?
e.g:
a=$(echo -e wert trewt ertert ertert ertert erttert
erterte
rterter
tertertert
ert)
How do i replace the STRING with $a?
I try this:
sed -i 's/STRING/'"$a"'/g' filename.ext
but this don' t work (2 Replies)
Can someone tell me how I can do this?
e.g:
Say file1.txt contains:
today is monday
the 22 of
NOVEMBER
2010
and file2.txt contains:
the
11th
month
of
How do i replace the word NOVEMBER with (5 Replies)
Hi,
i call my shell like:
my_shell "my project name"
my script:
#!/bin/bash -vx
projectname=$1
sed s/'PROJECT_NAME ='/'PROJECT_NAME = '$projectname/ <test_config_doxy >temp
cp temp test_config_doxy
the following error occurres:
sed s/'PROJECT_NAME ... (2 Replies)