Skip to main content
fixed ordering problem, now it should be in order and uniq as well
Source Link
mkzia
  • 39
  • 2

Please try:::::

given:: echo $ADMIN_IPS 

8.8.10.1,8.8.10.2,8.8.10.3

and Input file /tmp/myvar given with contents as below::::

-A INPUT -i @PUBLIC_INTERFACE@ -p tcp -m tcp --dport 80 -d @PUBLIC_IP@ --syn -j ACCEPT

-A INPUT -i @PUBLIC_INTERFACE@ -p tcp -m tcp --dport 22 -d @PUBLIC_IP@ -s @ADMIN_IPS@ --syn -j ACCEPT

-A INPUT -i @PUBLIC_INTERFACE@ -p tcp -m tcp --dport 443 -d @PUBLIC_IP@ --syn -j ACCEPT

for i in $(echo $ADMIN_IPS |tr ',' '\n'); do while read j; do savedline=$(echo "$j"|sed 's/@PUBLIC_INTERFACE@/eth0/'|sed 's/@PUBLIC_IP@/1.1.1.1/'|sed'); for i in $(echo $ADMIN_IPS |tr ',' '\n'); do echo $savedline|sed "s/@ADMIN_IPS@/$i/";done";done|uniq;done < /tmp/myvar ; done|sort|uniq 

Try and let us know.

Please try:::::

given:: echo $ADMIN_IPS 

8.8.10.1,8.8.10.2,8.8.10.3

and Input file /tmp/myvar given with contents as below::::

-A INPUT -i @PUBLIC_INTERFACE@ -p tcp -m tcp --dport 80 -d @PUBLIC_IP@ --syn -j ACCEPT

-A INPUT -i @PUBLIC_INTERFACE@ -p tcp -m tcp --dport 22 -d @PUBLIC_IP@ -s @ADMIN_IPS@ --syn -j ACCEPT

-A INPUT -i @PUBLIC_INTERFACE@ -p tcp -m tcp --dport 443 -d @PUBLIC_IP@ --syn -j ACCEPT

for i in $(echo $ADMIN_IPS |tr ',' '\n'); do while read j; do echo "$j"|sed 's/@PUBLIC_INTERFACE@/eth0/'|sed 's/@PUBLIC_IP@/1.1.1.1/'|sed "s/@ADMIN_IPS@/$i/";done < /tmp/myvar ; done|sort|uniq 

Try and let us know.

Please try:::::

given:: echo $ADMIN_IPS 

8.8.10.1,8.8.10.2,8.8.10.3

and Input file /tmp/myvar given with contents as below::::

-A INPUT -i @PUBLIC_INTERFACE@ -p tcp -m tcp --dport 80 -d @PUBLIC_IP@ --syn -j ACCEPT

-A INPUT -i @PUBLIC_INTERFACE@ -p tcp -m tcp --dport 22 -d @PUBLIC_IP@ -s @ADMIN_IPS@ --syn -j ACCEPT

-A INPUT -i @PUBLIC_INTERFACE@ -p tcp -m tcp --dport 443 -d @PUBLIC_IP@ --syn -j ACCEPT

while read j; do savedline=$(echo "$j"|sed 's/@PUBLIC_INTERFACE@/eth0/'|sed 's/@PUBLIC_IP@/1.1.1.1/'); for i in $(echo $ADMIN_IPS |tr ',' '\n'); do echo $savedline|sed "s/@ADMIN_IPS@/$i/";done|uniq;done < /tmp/myvar 

Try and let us know.

added 257 characters in body
Source Link
mkzia
  • 39
  • 2

Please try:::::

given:: echo $ADMIN_IPS 

8.8.10.1,8.8.10.2,8.8.10.3

and Input file /tmp/myvar given with contents as below::::

-A INPUT -i @PUBLIC_INTERFACE@ -p tcp -m tcp --dport 80 -d @PUBLIC_IP@ --syn -j ACCEPT

-A INPUT -i @PUBLIC_INTERFACE@ -p tcp -m tcp --dport 22 -d @PUBLIC_IP@ -s @ADMIN_IPS@ --syn -j ACCEPT

-A INPUT -i @PUBLIC_INTERFACE@ -p tcp -m tcp --dport 443 -d @PUBLIC_IP@ --syn -j ACCEPT

for i in $(echo $ADMIN_IPS |tr ',' '\n');   do echo '-A INPUT -i @PUBLIC_INTERFACE@ -p tcp -m tcp --dport 22 -d @PUBLIC_IP@ -s @ADMIN_IPS@ --syn -j ACCEPT'|while \ read j; do echo sed"$j"|sed 's/@PUBLIC_INTERFACE@/eth0/'| \ sed'|sed 's/@PUBLIC_IP@/1.1.1.1/'| \ sed'|sed "s/@ADMIN_IPS@/$i/"; done";done < /tmp/myvar ; done|sort|uniq 

This is for condition where comma is used in the separation. Try and let us know.

Please try:::::

for i in $(echo $ADMIN_IPS |tr ',' '\n');   do echo '-A INPUT -i @PUBLIC_INTERFACE@ -p tcp -m tcp --dport 22 -d @PUBLIC_IP@ -s @ADMIN_IPS@ --syn -j ACCEPT'| \  sed 's/@PUBLIC_INTERFACE@/eth0/'| \ sed 's/@PUBLIC_IP@/1.1.1.1/'| \ sed "s/@ADMIN_IPS@/$i/"; done 

This is for condition where comma is used in the separation. Try and let us know.

Please try:::::

given:: echo $ADMIN_IPS 

8.8.10.1,8.8.10.2,8.8.10.3

and Input file /tmp/myvar given with contents as below::::

-A INPUT -i @PUBLIC_INTERFACE@ -p tcp -m tcp --dport 80 -d @PUBLIC_IP@ --syn -j ACCEPT

-A INPUT -i @PUBLIC_INTERFACE@ -p tcp -m tcp --dport 22 -d @PUBLIC_IP@ -s @ADMIN_IPS@ --syn -j ACCEPT

-A INPUT -i @PUBLIC_INTERFACE@ -p tcp -m tcp --dport 443 -d @PUBLIC_IP@ --syn -j ACCEPT

for i in $(echo $ADMIN_IPS |tr ',' '\n'); do while read j; do echo "$j"|sed 's/@PUBLIC_INTERFACE@/eth0/'|sed 's/@PUBLIC_IP@/1.1.1.1/'|sed "s/@ADMIN_IPS@/$i/";done < /tmp/myvar ; done|sort|uniq 

Try and let us know.

reformatted and broke the lines apart, for better readability
Source Link
Jeff Schaller
  • 68.8k
  • 35
  • 122
  • 267

Please try:::::

for i in $(echo $ADMIN_IPS |tr ',' '\n'); do echo '-A INPUT -i @PUBLIC_INTERFACE@ -p tcp -m tcp --dport 22 -d @PUBLIC_IP@ -s @ADMIN_IPS@ --syn -j ACCEPT'|sed 's/@PUBLIC_INTERFACE@/eth0/'|sed 's/@PUBLIC_IP@/1.1.1.1/'|sed "s/@ADMIN_IPS@/$i/";done

for i in $(echo $ADMIN_IPS |tr ',' '\n'); do echo '-A INPUT -i @PUBLIC_INTERFACE@ -p tcp -m tcp --dport 22 -d @PUBLIC_IP@ -s @ADMIN_IPS@ --syn -j ACCEPT'| \ sed 's/@PUBLIC_INTERFACE@/eth0/'| \ sed 's/@PUBLIC_IP@/1.1.1.1/'| \ sed "s/@ADMIN_IPS@/$i/"; done 

This is for condition where comma is used in the separation. Try and let us know.

Please try:::::

for i in $(echo $ADMIN_IPS |tr ',' '\n'); do echo '-A INPUT -i @PUBLIC_INTERFACE@ -p tcp -m tcp --dport 22 -d @PUBLIC_IP@ -s @ADMIN_IPS@ --syn -j ACCEPT'|sed 's/@PUBLIC_INTERFACE@/eth0/'|sed 's/@PUBLIC_IP@/1.1.1.1/'|sed "s/@ADMIN_IPS@/$i/";done

This is for condition where comma is used in the separation. Try and let us know.

Please try:::::

for i in $(echo $ADMIN_IPS |tr ',' '\n'); do echo '-A INPUT -i @PUBLIC_INTERFACE@ -p tcp -m tcp --dport 22 -d @PUBLIC_IP@ -s @ADMIN_IPS@ --syn -j ACCEPT'| \ sed 's/@PUBLIC_INTERFACE@/eth0/'| \ sed 's/@PUBLIC_IP@/1.1.1.1/'| \ sed "s/@ADMIN_IPS@/$i/"; done 

This is for condition where comma is used in the separation. Try and let us know.

Source Link
mkzia
  • 39
  • 2
Loading