我正试图通过解析ietf RFC指数来生成RFC的简短描述列表。我希望能得到一些关于curl https://www.ietf.org/download/rfc-index.txt | sed 'magic' | awk 'more magic' | cut -f ?效果的命令
命令curl https://www.ietf.org/download/rfc-index.txt的未解析输出如下所示:
6708 Application-Layer Traffic Optimization (ALTO) Requirements. S.
Kiesel, Ed., S. Previdi, M. Stiemerling, R. Woundy, Y. Yang.
September 2012. (Format: TXT, HTML) (Status: INFORMATIONAL) (DOI:
10.17487/RFC6708)
6709 Design Considerations for Protocol Extensions. B. Carpenter, B.
Aboba, Ed., S. Cheshire. September 2012. (Format: TXT, HTML)
(Status: INFORMATIONAL) (DOI: 10.17487/RFC6709)
6710 Simple Mail Transfer Protocol Extension for Message Transfer
Priorities. A. Melnikov, K. Carlberg. August 2012. (Format: TXT,
HTML) (Status: PROPOSED STANDARD) (DOI: 10.17487/RFC6710)
6711 An IANA Registry for Level of Assurance (LoA) Profiles. L.
Johansson. August 2012. (Format: TXT, HTML) (Status: INFORMATIONAL)
(DOI: 10.17487/RFC6711) 我希望能在月年度上获得额外的笔记输出。
6708 Application-Layer Traffic Optimization (ALTO) Requirements. S.
Kiesel, Ed., S. Previdi, M. Stiemerling, R. Woundy, Y. Yang.
6709 Design Considerations for Protocol Extensions. B. Carpenter, B.
Aboba, Ed., S. Cheshire.
6710 Simple Mail Transfer Protocol Extension for Message Transfer
Priorities. A. Melnikov, K. Carlberg.
6711 An IANA Registry for Level of Assurance (LoA) Profiles. L.
Johansson.发布于 2020-04-19 20:34:17
这使用sed命令:
sed -r 's/^(.*)(January|February|March|April|May|June|July|August|September|October|November|December) [[:digit:]]{4}(.*)$/\1/'只要用管道curl就行了。
一些细节:
-r:使用“扩展正则表达式”\1)以下是Barnett关于命令行工具的经典系列文章中关于sed的部分内容。
发布于 2020-04-19 20:33:50
如果所有条目的结构与所显示的一样一致,则甚至不需要显式匹配年份或月份,但可以依赖要删除的所有部分如何分隔。
以下命令可用于输入:
sed -zE 's/[^.]+\.[ \n]+\([^)]+\)[ \n]+\([^)]+\)[ \n]+\([^)]+\)//g' yourfile本质上,它匹配最后(也是唯一)三个父级文本(\([^)]+\)),以及它们前面的最后一个以点结尾的字符串([^.]+\.)。它允许用空格和/或换行符([ \n]+)分隔这三个成分。
此外,使用-z选项,sed将输入文件作为一行处理。-E是使用+代替\+来表示1或更多(代价是必须编写\(和\)来匹配文字括号)。
https://stackoverflow.com/questions/61310635
复制相似问题