0

複数のファイルの IP を 1 つのコマンドで一括置換する方法を教えてください。このsedコマンドは何をしますか?

sed 's/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/x.x.x.x/g' *

ここで本当に助けが必要です。ありがとう!

4

2 に答える 2

0
sed "s/\([12]\{0,1\}[0-9]\{0,1\}[0-9]\.\)\{3\}[12]\{0,1\}[0-9]\{0,1\}[0-9]/x.x.x.x/g"

しかし

  1. 数字(桁)が前後にある場合は無視され、内部部分は IP と見なされます
  2. 255 より大きく 300 より小さい番号が表示された場合でも、それらは IP と見なされます。
  3. 0 で始まる IP は含まれません (120.008.099.234 など)

それらが重要だと思う場合、より複雑な sed をビルドする必要があります(カスケードだと思います)

sed "s/.*/#&#/;s/\([^0-9.]\)\([012]\{0,1\}[0-9]\{0,1\}[0-9]\.\)\{3\}[12]\{0,1\}[0-9]\{0,1\}[0-9]\([^0-9.]\)/\1x.x.x.x\3/g;s/^#\(.*\)#$/\1/"

(まだ 255 から 300 の間の数が可能です)

于 2013-11-13T10:09:22.033 に答える