0
UPDATE: 今、私はこれに似て処理するためのシンプルなファイル、持っている:はバッシュで変数にはawk、sedの出力を設定し
127.0.0.1 25 127.0.0.1
127.0.0.1 25 127.0.0.1
127.0.0.1 32828 127.0.0.1
127.0.0.1 32830 127.0.0.1
127.0.0.1 32906 127.0.0.1
127.0.0.1 32908 127.0.0.1
127.0.0.1 32984 127.0.0.1
(最初の列ip_local、第2の列port_localと最後の列をip_foreign)
私がしなければならないことは、awk出力を変数に送ることだけです。私は2つの列を持つファイルを処理bashスクリプトを持っている私が書くために管理 コードはこれですが、私はまだ、テキストファイルを処理するために問題を抱えている...
#!/bin/sh
for i in `cat DEV0_IPsListSep.txt`;
do
ip_local=$(awk '{print $1}' $i);
port_local=$(awk '{print $2}' $i);
ip_foreign=$(awk '{print $3}' $i);
if [$port_local < 3200] || [$ip_foreign != 127.0.0.1] || [$ip_foreign !=
192.168.1.1]
then
echo $ip_foreign >> IPFinalList.txt;
fi
done
。最初の列はローカルIPアドレス、もう1つは外部アドレスの1つです。
例:
127.0.0.1:25 127.0.0.1:33862
127.0.0.1:25 127.0.0.1:36498
127.0.0.1:25 127.0.0.1:37338
127.0.0.1:25 127.0.0.1:37410
127.0.0.1:25 127.0.0.1:38320
127.0.0.1:25 127.0.0.1:39428
127.0.0.1:25 127.0.0.1:39514
127.0.0.1:25 127.0.0.1:39768
127.0.0.1:25 127.0.0.1:39846
127.0.0.1:25 127.0.0.1:40376
私は、IPアドレスとポートを分離するために、私のカスタム変数にSEDとawkのコマンドの出力を割り当てるためのスクリプトをしたいと思います。
私は、スクリプトを作成しようとしましたが、それでも構文エラーを受け取る...単一のawkプロセス(最適化された溶液)で
#!/bin/sh
for i in `IPslist.txt`;
ipLocal=$(awk '{print $1}' | sed -e 's/:.*//' $i)
portLocal=$(awk '{print $1}' | sed -e 's/.*://' $i)
ipForeign=$(awk '{print $2}' | sed -e 's/:.*//' $i)
portForeign=$(awk '{print $2}' | sed -e 's/.*://' $i)
if [ $portLocal < 3200 ] || [ $ipForeign != 127.0.0.1 ] || [
$ipForeign != 192.168.1.1 ]
then
echo $ipForeign >> IPFinalList.txt
fi
こんにちは、ローマ、私はあなたの助けに感謝! これが私の問題の解決策であるかどうかはわかりません。このawkコマンドの出力は、ソースファイルと同じです。私の場合、最初の列のすべてのIPを印刷するのは興味深いでしょう。 – Dandelion
@Dandelion、それは明白です:if [$ portLocal <3200] || [$ ipForeign!= 127.0.0.1] || [ $ ipForeign!= 192.168.1.1] 'すべての入力行、つまりあなたの現在の入力行をすべてあなたの条件に合わせてカバーします。それ以外の場合は、条件を定義する間違いをした – RomanPerekhrest
OK!わかった。しかし、あなたのawkコマンドでは、 ":"区切り記号でも、私は間違った出力を得続けます。例127.0.0.1 25 127.0.0.1(最初のカラムはローカルアドレスIP、2番目のカラムはローカルポート、3番目のカラムは外部IP)、私はまだすべてを分けて新しいファイルを取得しようとしました。私が望むIPリストを取得できません(新しいファイルにはIPリストと元のファイルのようなポートがすべて表示されます)。 – Dandelion