gpt4 book ai didi

regex - 如何在 linux 中搜索两个不同的表达式

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:48:57 27 4
gpt4 key购买 nike

我有一个包含一些文本的文件,例如:

aaa.co
bbb.com
ccc.net
sss.co.uk

我需要提取 *.co.**.com.* 并将它们放在另一个文件中。我使用以下内容来提取 *.com.* 但如何提取 *.com.**.co.*在一个命令中而不是单独执行它们?

egrep -io '[a-z0-9\-]+\.com(\.[a-z]{2})?' input.txt | sed -e 's/www.//' | sort | uniq >output.txt

输入文件示例:

aaa.co
bbb.com
ccc.net
sss.co.uk

结果文件:

co
com

最佳答案

把com中的m设为可选

egrep -io '[a-z0-9\-]+\.co(m)?(\.[a-z]{2})?' input.txt | sed -e 's/www.//' | sort | uniq >output.txt

编辑:你也可以删除 sed 和 uniq

awk 'match($0, "(www\\.)?([a-z0-9\\-]+\\.com?(\\.[a-z]{2})?)", r) { print r[2] }' input.txt | sort -u 

编辑:松散 sed 和 uniq 的另一种方法

grep -oP '^(www\.)?\K[a-z0-9\-]+\.com?(\.[a-z]{2})?(?=)$' input.txt | sort -u

关于regex - 如何在 linux 中搜索两个不同的表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13434188/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com