sed は最初のフィールドを抽出し、特定の位置に移動します。

sed は最初のフィールドを抽出し、特定の位置に移動します。

このファイルがあります。

10.1.1.1    www1           
10.1.1.2    www2           
10.1.1.3    www3            

IP address最初のフィールドを抽出して次の場所に移動したいと思います。http://www.foo.com=10.1.1.1/test.php

10.1.1.1    www1           # http://www.foo.com=10.1.1.1/test.php
10.1.1.2    www2           # http://www.foo.com=10.1.1.2/test.php
10.1.1.3    www3           # http://www.foo.com=10.1.1.3/test.php

これはできますが、1行のトリックにしたいと for loop思います。sed

ベストアンサー1

sed 's@\([^ ]*\)\(.*\)@\1\2 #http://www.foo.com=\1/test.php@'
  • アドレスを区切り文字として使用する@ときは、アドレスにバックスラッシュを使用する必要はありません。

  • IPアドレスはと一致します[^ ]*。つまり、空でない項目は0回以上一致し、によってキャプチャさ\(\)れます\1。残りの行\2.*つまり何でもキャプチャされます。

おすすめ記事