1

次のような内容の構成ファイルがあります。

db.path=/home/kpmg/test/dbfiles/dbone.db
db.connection.timeout=500000
server.url=http://a.b.c.d:8033/plain/httpds?
output.file.path=/home/kpmg/test/dbfiles/
log.file.path=/home/kpmg/test/dbfiles/
log.level=DEBUG

行から IP アドレスだけを抽出する必要がありますserver.url。例とドキュメントを読んでいくつかの awk コマンドを使用しようとしましたが、正しく実行できませんでした。

4

3 に答える 3

7

awkIPだけを印刷する1つの方法:

$ awk -F'[/:]' '/server[.]url/{print $4}' file
a.b.c.d

または使用GNU grep

$ grep -Po '(?<=server.url=http://)[^:]*' file
a.b.c.d

または単にgrepIP の場合:

$ egrep -o '([0-9]{1,3}[.]){3}[0-9]{1,3}' file
于 2013-08-20T12:01:31.537 に答える
1
awk -F'http://|:[0-9]+' '$0=$2' file

これはあなたの例で機能します:

kent$  echo "db.path=/home/kpmg/test/dbfiles/dbone.db
db.connection.timeout=500000
server.url=http://a.b.c.d:8033/plain/httpds?
output.file.path=/home/kpmg/test/dbfiles/
log.file.path=/home/kpmg/test/dbfiles/
log.level=DEBUG"|awk -F'http://|:[0-9]+' '$0=$2'
a.b.c.d
于 2013-08-20T12:15:37.213 に答える
0
echo "${URL}" | awk -F/ '{print $3}' | sed 's/:.*//'

さまざまな可能性をテストする要点は次のとおりです

サンプルラン:

# ./get_domain_from_url.sh
For URL:http://1.1.1.1, domain name:1.1.1.1
For URL:http://1.1.1.1:8443, domain name:1.1.1.1
For URL:https://1.1.1.1, domain name:1.1.1.1
For URL:https://1.1.1.1:8443, domain name:1.1.1.1
For URL:http://hello-world, domain name:hello-world
For URL:http://hello-world.com, domain name:hello-world.com
For URL:http://sub.hello-world.com, domain name:sub.hello-world.com
For URL:http://hello-world:8080, domain name:hello-world
For URL:http://hello-world.com:8080, domain name:hello-world.com
For URL:http://sub.hello-world.com:8080, domain name:sub.hello-world.com
For URL:https://hello-word/foo/bar, domain name:hello-word
于 2018-03-09T18:58:57.190 に答える