1

次の形式の文字列からドメインを抽出する bash スクリプトを作成しています。

....ドメイン名 example.com...

example.comを出力したい。

マッチングを使用してこのドメイン名を出力するにはどうすればよいですか?

4

4 に答える 4

2

ドメインのパターンを文字列内でより適切に一致させるには、ドメインのパターンをより適切に定義する必要があります。その後、grepを使用して、ドメインパターンを説明する正規表現を照合できます。

domain=`echo "....domain name xxx.com..." | grep -om 1 -G "[^ ]*\.com"`
于 2012-11-05T21:11:34.157 に答える
2

ドメイン名が「.com」で終わると想定せずに

grep -oP '(?<=domain name )\S+'

意味: 文字列「ドメイン名」に続く一連の非空白文字を探します

于 2012-11-06T03:07:22.390 に答える
1

GNU でgrep

 echo "random words domain name example.com random words" | grep -oP  "domain name \K[^ ]+\.com"
于 2012-11-05T21:20:48.320 に答える
0

形式があなたの言うとおりである場合、これで十分です。

awk '/domain name/{print $3}'

文字列が変数に格納されている場合は、次のように使用できます。

awk '/domain name/{print $3}' <<< $string_name

文字列が他の文字列と一緒にファイルに保存されている場合は、1行に1つずつ:

awk '/domain name/{print $3}' < input_file > output_file
于 2012-11-05T21:12:19.673 に答える