shell如何读取 循环读取文本的每一行的第一字段和输出,并根据条件停止?

bandaoyu 2021-03-29 10:37:43
输入指令 showinfo后输出下面的内容,怎么写一个shell脚本 run.sh,我给它参数61(或者63或64), 它就读取host rdma61.ssdpool下面的行文字的第一个字段,并逐一输出log+字段,直至遇到下一个host rdma 停止。

如: run.sh 61

输出:

log18.txt
log21.txt
log24.txt
log28.txt

如: run.sh 63

log20.txt
log22.txt
log25.txt
log27.txt



-5 10.47839 root ssdpool
-25 10.47839 rack rack.ssdpool
-28 3.49280 host rdma61.ssdpool
18 ssd 0.87320 osd.18 up 1.00000 1.00000
21 ssd 0.87320 osd.21 up 1.00000 1.00000
24 ssd 0.87320 osd.24 up 1.00000 1.00000
28 ssd 0.87320 osd.28 up 1.00000 1.00000
-31 3.49280 host rdma63.ssdpool
20 ssd 0.87320 osd.20 up 1.00000 1.00000
22 ssd 0.87320 osd.22 up 1.00000 1.00000
25 ssd 0.87320 osd.25 up 1.00000 1.00000
27 ssd 0.87320 osd.27 up 1.00000 1.00000
-34 3.49280 host rdma64.ssdpool
19 ssd 0.87320 osd.19 up 1.00000 1.00000
23 ssd 0.87320 osd.23 up 1.00000 1.00000
26 ssd 0.87320 osd.26 up 1.00000 1.00000
29 ssd 0.87320 osd.29 down 0 1.00000

...全文
495 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
源代码大师 2021-04-26
  • 打赏
  • 举报
回复
C和C++ 完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++ 算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html
bandaoyu 2021-04-21
  • 打赏
  • 举报
回复
awk -v flag=0 ' /host rdma'$1'/ {flag=1; next} flag == 1 && /host rdma/ {flage=0; exit} flag == 1 {print "log"$1".txt"} ' showinfo

65,198

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧