grepとegrep
質問のコマンドラインは、、、を保持し.comます。したがって、このセクションでは、とを使用した2つの基本的な例を示します。これらのコマンドラインは、質問のコマンドラインが行うように、完全なトップレベルドメイン(TLD)を保持します。.co.co.ukgrepegrep
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