首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >这个命令是什么意思?

这个命令是什么意思?
EN

Stack Overflow用户
提问于 2022-10-31 04:39:05
回答 1查看 42关注 0票数 0

更详细地说,我一直在执行一项任务,要求我查找目录下所有大写的文件,保存在没有重叠条目的txt文件中,并表示目录如下所示。

代码语言:javascript
运行
复制
website.com - - [date/date/date:date:date:date -0400] "GET /elv/HELLO/wave.gif HTTP/1.0" 200 1318
website.com - - [date/date/date:date:date:date -0400] "GET /elv/ball.gif HTTP/1.0" 200 306

我试过:

代码语言:javascript
运行
复制
grep "/elv/" (filename.txt) | awk '{print $7}' |
awk -F/ '{print $3}' | grep ^[A-Z] | sort -u > elv.txt

我已经明白了

代码语言:javascript
运行
复制
grep "/elv/" (filename.txt)

awk '{print $7}'

grep ^[A-Z]

sort -u > elv.txt

但是我不明白为什么代码

代码语言:javascript
运行
复制
awk -F/ '{print $3}' 

才是必要的。它是否习惯于不注册$7的其余部分通过CAPITALISED_WORD之后的/elv/CAPITALISED_WORD

我试过了

代码语言:javascript
运行
复制
grep "/elv/" (filename.txt) | awk '{print $7}' |
awk -F/ '{print $3}' | grep ^[A-Z] | sort -u > elv.txt

对于我的初始测试,结果是在一个txt文件中,所有名称都是在/elv/之后大写的。

代码语言:javascript
运行
复制
HELLO
(list of other capitalised words)

但当我试着

代码语言:javascript
运行
复制
grep "/elv/" (filename.txt) | awk '{print $7}' | grep ^[A-Z] |
sort -u > elv.txt

txt文件将显示为空白。

我会想,如果我做了第一次尝试,它就会给出一个类似于这样的文本文件。

代码语言:javascript
运行
复制
HELLO/wave.gif

编辑以求更清晰

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-31 05:43:16

您可以使用这个awk,它将2个grep和2个awk命令组合成一个:

代码语言:javascript
运行
复制
awk '/\/elv\// && split($7, a, /\//) && a[3] ~ /^[A-Z]/ {print a[3]}' file |
sort -u

HELLO

回答你的问题:

代码语言:javascript
运行
复制
awk -F/ '{print $3}'

在由/拆分的记录中打印第三列。

有关awk命令的详细信息:

  • /\/elv\//:如果输入行与文本/elv/
  • && split($7, a, /\//):匹配,如果第7字段可以由/
  • && a[3] ~ /^[A-Z]/:拆分,如果拆分数组中的第3字段以大写letter
  • {print a[3]}:开头,则打印split数组

的第3元素

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74258792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档