首页 > 解决方案 > 我需要使用 sed、gawk 或 grep 从 Google 驱动器 url 中提取我想要的内容

问题描述

网址:

1. https://docs.google.com/uc?id=0B3X9GlR6EmbnQ0FtZmJJUXEyRTA&export=download
2. https://drive.google.com/open?id=1TkLq5C7NzzmbRjd7VGRhauNT9Vaap-Py
3. https://drive.google.com/drive/folders/1TkLq5C7NzzmbRjd7VGRhauNT9Vaap-Py?usp=sharing

我需要一个用于这些所有网址的正则表达式。
这是我尝试使用但没有得到预期结果的方法。

sed -E 's/.*\(folders\)?\(id\)?=?\/?(.*)&?.*/\1/'

预期成绩:

0B3X9GlR6EmbnQ0FtZmJJUXEyRTA
1TkLq5C7NzzmbRjd7VGRhauNT9Vaap-Py

标签: awksedgrep

解决方案


请您尝试以下操作。

awk 'match($0,/uc\?id=[^&]*|folders\/[^?]*/){value=substr($0,RSTART,RLENGTH);gsub(/.*=|.*\//,"",value);print value}'  Input_file

推荐阅读