1

私はこれがあなたの教祖の一人にとって本当に簡単であることを知っています!

次のようなリストがあります。

 www.google.com
 ebay.com
 yahoo.com
 www.bing.com
 www.buy.com
 woot.com
 news.google.com
 images.google.com

このリストをクリーンアップするために bash/sed/awk スクリプトを作成しようとしています。リストを次のようにする必要があります。

 www.google.com
 www.ebay.com
 www.yahoo.com
 www.bing.com
 www.buy.com
 www.woot.com
 news.google.com
 images.google.com

要約すると、「www.」を追加する必要があります。www またはサブドメインがまだない場合。このリストは、theList というファイルにあります。私の不自由な試みはこれです:

 sed 's/^www\./' theList > cleanedList

すでに www またはサブドメインがある場合、これは明らかに機能しません。どんなアイデアでも大歓迎です。

ありがとう!

EV

4

3 に答える 3

1

これは、sed よりも awk の方がはるかに簡単です。例えば:

awk -F. 'NF == 2 {print "www." $0; next}; {print}' theList > cleanedList

これは、「サブドメイン」を、各レコード内のフィールド区切りとしてドットを使用して、名前に 2 つ未満のドットを含むものとして定義します。確かにこれを調整することができます。

次に示すように、提供されたコーパスを正しく処理します。

$ cat cleanedList
www.google.com
www.ebay.com
www.yahoo.com
www.bing.com
www.buy.com
www.woot.com
news.google.com
images.google.com
于 2012-06-15T21:32:54.987 に答える