2016-04-17 8 views
0

heftigen Schlag in OpenWrt unter /etc ich eine Datei foreign.txt habe, mit dem Inhalt, wie unten: 1.0.0.0/24OpenWrt Bash shell for-Schleife erkennt slash

Wenn i for i in ``cat /etc/foreign.txt``; do ipset add redir $i;done verwenden, das/behandelt wird wie ', zeigt' 24 numerorror.

Aber wenn ich versuche for i in ``cat /etc/foreign.txt``; do echo $i;done zeigt es die richtige /.

Wie kann die Shell es im ipset-Befehl richtig behandeln?

Danke.

Antwort

0

Es gibt mehrere Sonderzeichen nach /24 in Ihrer Frage. Siehe Ausgabe dieses Befehls:

wget -qO - 'http://stackoverflow.com/revisions/36fdcac2-c6a6-4dd8-aad4-75af2d16827e/view-source' | cat -v 

ich verwenden vorschlagen:

tr -cd '0-9./\n' </etc/foreign.txt | while read -r i; do echo ipset add redir "$i"; done 

Wenn alles in Ordnung echo Entfernen aussieht.


Dieser tr Befehl löscht jedes Zeichen von /etc/foreign.txt aber 0-9, Punkt, Schrägstrich und Newline.