首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法将regex与awk一起使用,以便仅在模式匹配时执行命令?

有没有办法将regex与awk一起使用,以便仅在模式匹配时执行命令?
EN

Stack Overflow用户
提问于 2020-05-27 17:25:22
回答 1查看 57关注 0票数 0

我正在尝试编写一个bash脚本来获取用户输入,检查包含该输入的行的.txt,然后将其插入到wget语句中以开始下载。

在测试功能时,awk似乎会打印出每一行,而不仅仅是模式匹配的行。

代码语言:javascript
复制
chosen=DSC01985
awk -v c="$chosen" 'BEGIN {FS="/"; /c/}
{print  $8, "found", c}
END{print " done"}' ./imgLink.txt

上面的代码应该取自imgLink.txt,搜索该模式并返回找到该模式。相反,它打印文件中每一行的第8个字段。

我尝试将/c/移出begin语句,但无济于事。

这里发生了什么事?

示例输入:

https://xxxx/xxxx/xxxx/xxxx/xxx/DSC01533.jpg

https://xxxx/xxxx/xxxx/xxxx/xxx/DSC01536.jpg

https://xxxx/xxxx/xxxx/xxxx/xxx/DSC01543.jpg

https://xxxx/xxxx/xxxx/xxxx/xxx/DSC01558.jpg

https://xxxx/xxxx/xxxx/xxxx/xxx/DSC01565.jpg等。

输出示例:

..。

DSC02028.jpg找到DSC01985

DSC02030.jpg找到DSC01985

DSC02032.jpg找到DSC01985

DSC02038.jpg找到DSC01985

DSC02042.jpg找到DSC01985等。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-27 17:38:48

你的尝试已经很接近了,你不能搜索像/var/这样的awk变量,为此你需要不同的方法。您可以尝试following.Considering,您想要查看的字符串将出现在URL值(S),您目前已在您的帖子xxx

代码语言:javascript
复制
awk -v c="$chosen" -F'/' '$0 ~ c{print $NF " found " c}' Input_file

不确定为什么要在END块中编写done,如果需要,可以在此处添加它。此外,$NF表示当前行的最后一个字段,您也可以根据需要打印它。

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

https://stackoverflow.com/questions/62039747

复制
相关文章

相似问题

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