gpt4 book ai didi

regex - 仅打印带有大写字母的单词 (Linux)

转载 作者:行者123 更新时间:2023-12-03 09:45:16 27 4
gpt4 key购买 nike

所以我目前正在读取这个 txt 文件:

Line 961: www-d1.proxy.aol.com - - [01/Aug/1995:00:35:32 -0400] "GET /elv/hot.gif HTTP/1.0" 200 1007
Line 965: www-d1.proxy.aol.com - - [01/Aug/1995:00:35:41 -0400] "GET /elv/PEGASUS/minpeg1.gif HTTP/1.0" 200 1055
Line 966: www-d1.proxy.aol.com - - [01/Aug/1995:00:35:46 -0400] "GET /elv/SCOUT/scout.gif HTTP/1.0" 200 1165
Line 969: www-d1.proxy.aol.com - - [01/Aug/1995:00:35:49 -0400] "GET /elv/DELTA/delta.gif HTTP/1.0" 200 2244
Line 972: www-d1.proxy.aol.com - - [01/Aug/1995:00:35:51 -0400] "GET /elv/ATLAS_CENTAUR/atlas.gif HTTP/1.0" 200 2286
Line 95219: u139.n72.queensu.ca - - [04/Aug/1995:10:40:04 -0400] "GET /elv HTTP/1.0" 302 -
我试图只打印出命令行中的名称(基本上只有大写字母),没有重复。例如:
ATLAS_CENTAUR
DELTA
SCOUT
PEGASUS
到目前为止我的代码:
grep "/elv" ~/spacestation.txt | awk -F/ '{print $5}' | sort -u
实际输出:
1.0" 302
ATLAS_CENTAUR
DELTA
hot.gif HTTP
SCOUT
PEGASUS

最佳答案

您能否尝试仅在 GNU awk 中使用所示示例进行以下、编写和测试? .

your_command | awk '
match($0,/"GET \/[a-zA-Z]+\/[^/]*/){
val=substr($0,RSTART,RLENGTH)
sub(/.*\//,"",val)
if(val!~/[a-z]/){ print val }
val=""
}'

关于regex - 仅打印带有大写字母的单词 (Linux),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64450215/

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