Linux命令行提取SQL文本文件中单引号内的HTTP/HTTPS链接
解决方案:提取单引号内的HTTP/HTTPS链接
别担心,作为Linux命令行新手,遇到特殊字符确实容易懵,我给你两个简单好用的命令,完美匹配你的需求!
方法一:用grep快速提取(推荐)
这个命令最简洁,直接精准抓取你要的内容:
grep -Eo "https?://[^']+" your_large_file.sql > clean_links.txt
命令解释(帮你理解每个部分):
-E:启用扩展正则表达式,让我们能使用?这类灵活的元字符-o:只输出匹配到的部分,而不是整行内容,避免冗余信息"https?://[^']+":核心匹配规则https?://:匹配以http://或https://开头的链接,?表示s是可选的(同时兼容http和https链接)[^']+:匹配除了单引号'之外的所有字符,直到遇到下一个单引号就停止,这样刚好提取到单引号内部的完整链接,不会带上单引号
用你提供的示例文本测试,这个命令会输出:
https://I_want_this https://I_want_this_too
完全符合你的要求!
方法二:用sed灵活提取(适合扩展需求)
如果你以后需要更复杂的文本处理,sed会更灵活,这个命令同样能实现你的需求:
sed -n "s/.*'\(https\?:\/\/[^']*\)'.*/\1/p" your_large_file.sql > clean_links.txt
命令解释:
-n:默认不输出任何行,只打印我们指定的内容,避免无关行干扰s/.*'\(https\?:\/\/[^']*\)'.*/\1/p:替换并打印的规则.*':匹配任意字符直到第一个单引号\(https\?:\/\/[^']*\):用捕获组\( \)把我们需要的链接存起来'.*:匹配单引号之后的所有字符\1:引用第一个捕获组里的内容(也就是我们要的纯链接)p:打印最终提取出的链接
注意事项
- 把
your_large_file.sql替换成你实际的文件名即可 - 输出文件
clean_links.txt会自动创建,里面每行一个链接,完全整洁
内容的提问来源于stack exchange,提问作者I.P
相关产品推荐
相关产品推荐

