grep
とegrep
質問のコマンドラインは、、、を保持し.com
ます。したがって、このセクションでは、とを使用した2つの基本的な例を示します。これらのコマンドラインは、質問のコマンドラインが行うように、完全なトップレベルドメイン(TLD)を保持します。.co
.co.uk
grep
egrep
grep -io 'com?(\.[a-z]{2})?$' input.txt | sort -u >output.txt
またはより理解しやすい:
egrep -io 'com$|co$|co[.][a-z]{2}$' input.txt | sort -u >output.txt
参考までegrep "PATTERN1|PATTERN2"
に、はと同じですgrep -E "PATTERN1|PATTERN2"
代替使用sed
次のコマンドラインは、完全なトップレベルドメイン(TLD)sed
を保持しません。これは、質問で処理時に保持するように指定されているためです。co
*.co.uk
sed -n '/[a-z.][.]com\?/s/.*[.]\(com\?\)\(.*\|$\)/\1/p' input.txt | sort -u >output.txt
説明
-n
=>印刷しない
- パターンに一致するプロセスライン
/[.]com?[.]/
のみ
s/.*[.]\(com?\)([.][a-z]{2})?/\1/
com
=>行をまたはで置き換えますco
p
=>最後に行を印刷します
コマンドラインのテスト
input.txt
:
aaa.co
bbb.com
ccc.net
sss.co.uk
www.zzz.co
www.yyy.com
www.xxx.co.tw
に基づくテストuniq -c
:
sed -n '/[a-z.][.]com\?/s/.*[.]\(com\?\)\(.*\|$\)/\1/p' input.txt | sort | uniq -c
結果:
4 co
2 com