免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2720 | 回复: 19
打印 上一主题 下一主题

[文本处理] 【shell] 如何从一个变量输出中每次读取四行 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-07-29 11:27 |只看该作者 |倒序浏览
我有一个脚本设置了test_dir变量 变量中内容为文件路径:格式如下:

/u01/Test/test_dir/Result_Jrockit_1432794030/2015-06-09~13-22-47_OSwatcher_test_memory_Xms5g_chunk1m_Single_Thread/OSWg_OS_Cpu_System.gif
/u01/Test/test_dir/Result_Jrockit_1432794030/2015-06-09~13-22-47_OSwatcher_test_memory_Xms5g_chunk1m_Single_Thread/OSWg_OS_Cpu_User.gif
/u01/JTest/test_dir/Result_Jrockit_1432794030/2015-06-09~13-22-47_OSwatcher_test_memory_Xms5g_chunk1m_Single_Thread/OSWg_OS_Memory_Free.gif
/u01/Test/test_dir/Result_Jrockit_1432794030/2015-06-09~13-22-47_OSwatcher_test_parallel/OSWg_OS_Cpu_System.gif

...........................

我想每次读取四行并将路径插入html文件

<tr><td height="50"><div align="center"><img src=/u01/Test/test_dir/Result_Jrockit_1432794030/2015-06-09~13-22-47_OSwatcher_test_parallel/OSWg_OS_Cpu_System.gif width="1100"></div></td></tr>

我用的如下的:

test_dir="11\n22\n33\n44\n55\n66\n77\n88\n99\n10"
num=`echo -e "${test_dir}" | wc -l`
i=1
while [ ${i} -le ${num} ]
do
j=`expr ${i} + 2`
echo -e "${test_dir}" | sed -n "${i}","${j}"p
echo "######"

结果输出为数字,请帮忙看看。

谢谢!

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
2 [报告]
发表于 2015-07-29 12:24 |只看该作者
用数组吧

论坛徽章:
0
3 [报告]
发表于 2015-07-29 13:06 |只看该作者
又用数组,好吧, 多谢指点!

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
4 [报告]
发表于 2015-07-29 13:15 |只看该作者
在你顶楼代码的基础上修改的:
  1. test_dir="11\n22\n33\n44\n55\n66\n77\n88\n99\n10"
  2. num=`echo -e "${test_dir}" | wc -l`
  3. i=1
  4. while [ ${i} -le ${num} ]; do
  5.     j=`expr ${i} + 3`
  6.     echo -e "${test_dir}" | sed -n "${i},${j}p"
  7.     echo "######"
  8.     let i=j+1
  9. done
复制代码

论坛徽章:
0
5 [报告]
发表于 2015-07-29 13:26 |只看该作者
好的 ,多谢!

论坛徽章:
0
6 [报告]
发表于 2015-07-29 15:21 |只看该作者
回复 4# Shell_HAT

这个脚本我试了  输出的还是数字。 不知道数组怎么实现


   

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
7 [报告]
发表于 2015-07-29 15:47 |只看该作者
回复 6# cgiyan

  1. #!/usr/bin/bash

  2. dirs=( $(eval echo {1..10}) )
  3. len=${#dirs[@]}

  4. for (( i = 0; i < len; i += 4 )); do
  5.     echo "$i:"
  6.     (( j = i+4 <= len ? i+4 : len ))
  7.     for (( z = i; z < j; z++ )); do
  8.         echo -n "${dirs[$z]} "
  9.     done
  10.     echo
  11. done
复制代码

评分

参与人数 2信誉积分 +15 收起 理由
cgiyan + 5
substr函数 + 10 赞一个!

查看全部评分

论坛徽章:
0
8 [报告]
发表于 2015-07-29 15:54 |只看该作者
回复 7# MMMIX

多谢了 我试试


   

论坛徽章:
26
2015亚冠之胡齐斯坦钢铁
日期:2015-06-25 21:40:202015亚冠之柏斯波利斯
日期:2015-08-31 17:03:192015亚冠之柏斯波利斯
日期:2015-11-07 13:10:00程序设计版块每日发帖之星
日期:2015-11-10 06:20:00每日论坛发贴之星
日期:2015-11-10 06:20:00程序设计版块每日发帖之星
日期:2015-11-26 06:20:00程序设计版块每日发帖之星
日期:2015-12-02 06:20:00黄金圣斗士
日期:2015-12-07 17:57:4615-16赛季CBA联赛之天津
日期:2015-12-23 18:34:14程序设计版块每日发帖之星
日期:2016-01-02 06:20:00程序设计版块每日发帖之星
日期:2016-01-06 06:20:00每日论坛发贴之星
日期:2016-01-06 06:20:00
9 [报告]
发表于 2015-07-29 16:10 |只看该作者
回复 7# MMMIX


漂亮的bash代码啊。

大神啊。

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
10 [报告]
发表于 2015-07-29 22:57 |只看该作者
回复 6# cgiyan


    能否说下你顶楼的代码原本是想输出什么东西?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP