Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to make search for all phrases in the text and replace them with another phrase (IPv4 address search and validation)
    primarykey
    data
    text
    <p>How to make search for all phrases in the text and replace them with another phrase</p> <pre><code>(by using sed and/or awk and/or grep and/or perl) ? </code></pre> <p>It's about replacing one IPv4 address with another one and verify that the value found is the correct IPv4 address.</p> <p>Here's an example:</p> <pre><code>ip_node:&lt;ip_address&gt; e.g. ip_node:192.168.0.1 </code></pre> <p>These should be replaced by</p> <pre><code>ip_address:&lt;ip_address&gt;” e.g. "ip_address:192.168.0.1" </code></pre> <hr> <p>Additional assumptions:</p> <pre><code>-&gt; Phrases such 192.168.000.001, 072.12.01.1, 256.224.1.010, 20.128.300.01 and similar aren't propoer IPv4 addresses and should be marked as invalid IPv4 address and possibly write to another file. -&gt; Phrases containing less/more than 4 octets aren't also considered to be a valid IPv4 addresses and like above should be marked as invalid IPv4 address and possibly write to another file. -&gt; Phrases containing any character other than a digit [0..9] aren't also considered to be a valid IPv4 addresses and like above should be marked as invalid IPv4 address and possibly write to another file. </code></pre> <hr> <p>Content of sample file:</p> <pre><code>ip_node:192.168.0.1 ip_node:192.268.0.01 ip_node:10.0.0.0 ip_node:10.0.0000.10 ip_node:10.255.255.255 ip_node:10.255.255.255.12 ip_node:172.16.0.0 ip_node:172.16.0 ip_node:172.31.255.255 ip_node:172.31.255. ip_node:0.0.0.0 ip_node:01.0.01.0 ip_node:255.255.255.255 ip_node:255.259.255.259 ip_node:224.0.0.0 ip_node:224.0. ip_node:207.142.131.236 ip_node:207.002.001.06 ip_node:255.255.255.0 ip_node:055.2255.1255.0 ip_node:204.144.134.234 ip_node:2o7.0o2.0E.O6 ip_node:245.245.245.40 ip_node:O55.2255.1255.a0 </code></pre> <p>Content of output file1-all (with all entries):</p> <pre><code>ip_address:192.168.0.1 [!]ip_node:192.268.0.01 -- [invalid IP address] ip_address:10.0.0.0 [!]ip_node:10.0.0000.10 -- [invalid IP address] ip_address:10.255.255.255 [!]ip_node:10.255.255.255.12 -- [invalid IP address] ip_address:172.16.0.0 [!]ip_node:172.16.0 -- [invalid IP address] ip_address:172.31.255.255 [!]ip_node:172.31.255. -- [invalid IP address] ip_address:0.0.0.0 [!]ip_node:01.0.01.0 -- [invalid IP address] ip_address:255.255.255.255 [!]ip_node:255.259.255.259 -- [invalid IP address] ip_address:224.0.0.0 [!]ip_node:224.0. -- [invalid IP address] ip_address:207.142.131.236 [!]ip_node:207.002.001.06 -- [invalid IP address] ip_address:255.255.255.0 [!]ip_node:055.2255.1255.0 -- [invalid IP address] ip_address:204.144.134.234 [!]ip_node:2o7.0o2.0E.O6 -- [invalid IP address] ip_address:245.245.245.40 [!]ip_node:O55.2255.1255.a0 -- [invalid IP address] </code></pre> <p>Content of output file2-bad (only with bad entries):</p> <pre><code>[!]ip_node:192.268.0.01 -- [invalid IP address] [!]ip_node:10.0.0000.10 -- [invalid IP address] [!]ip_node:10.255.255.255.12 -- [invalid IP address] [!]ip_node:172.16.0 -- [invalid IP address] [!]ip_node:172.31.255. -- [invalid IP address] [!]ip_node:01.0.01.0 -- [invalid IP address] [!]ip_node:255.259.255.259 -- [invalid IP address] [!]ip_node:224.0. -- [invalid IP address] [!]ip_node:207.002.001.06 -- [invalid IP address] [!]ip_node:055.2255.1255.0 -- [invalid IP address] [!]ip_node:2o7.0o2.0E.O6 -- [invalid IP address] [!]ip_node:O55.2255.1255.a0 -- [invalid IP address] </code></pre> <p>Content of output file3-good (only with valid entries):</p> <pre><code>ip_address:192.168.0.1 ip_address:10.0.0.0 ip_address:10.255.255.255 ip_address:172.16.0.0 ip_address:172.31.255.255 ip_address:0.0.0.0 ip_address:255.255.255.255 ip_address:224.0.0.0 ip_address:207.142.131.236 ip_address:255.255.255.0 ip_address:204.144.134.234 ip_address:245.245.245.40 </code></pre> <p>Attempts:</p> <pre><code>sed -i -e "s/ip_node:/ip_address:/g" &lt;file&gt; </code></pre> <p>and this:</p> <pre><code>sed -i -e "s/ip_node:^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][‌​0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/ip_address:^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0‌​-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/g" &lt;file&gt; </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload