免费注册 查看新帖 |

Chinaunix

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

插入变量问题? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-03-23 10:57 |只看该作者 |倒序浏览
file 内容
867|0100|aaaaa|201|450.00|123123123|138|
867|0100|aaaaa|201|450.00|234234234|138|
867|0100|aaaaa|204|450.00|234234243|138|
867|0100|aaaaa|201|450.00|123123123|138|
867|0100|aaaaa|207|450.00|126564656|138|
我想生成以下格式的文件

echo -n "请输入日期"
read rq
把日期变量插入第二列前
867|20060312|0100|aaaaa|201|450.00|123123123|138|
867|20060312|0100|aaaaa|201|450.00|234234234|138|
867|20060312|0100|aaaaa|204|450.00|234234243|138|
867|20060312|0100|aaaaa|201|450.00|123123123|138|
867|20060312|0100|aaaaa|207|450.00|126564656|138|

用什么命令?????????

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
2 [报告]
发表于 2006-03-23 11:06 |只看该作者

论坛徽章:
0
3 [报告]
发表于 2006-03-23 14:12 |只看该作者
echo -n "Please input the date \(YYYYMMDD\)"
read rq
day="$rq|"
while read LINE; do
    head=${LINE%%|*}
    end=${LINE#*|}
    LINE="$head|$day$end"
    echo "$LINE" >> instest.temp
done < instest
rm -f instest
mv instest.temp instest

论坛徽章:
0
4 [报告]
发表于 2006-03-23 14:18 |只看该作者
这段脚本是把file的内容存在一个叫做instest的文件里,然后每次从这个文件读取一行,再在行中插入输入的日期值,把结果写到一个临时文件中。等全部执行完毕之后把临时文件替换为原有文件就行了。我学习脚本编程时间也不长,应该有更简单的script,希望能起到抛砖引玉的作用,请大家多多指教,谢谢。

论坛徽章:
0
5 [报告]
发表于 2006-03-23 14:58 |只看该作者
刚学了一点儿sed,发现可以简化不少:
echo -n "Please input the date (YYYYMMDD)"
read rq
read LINE < file
head=${LINE%%|*}
sed -i "s/$head/$head|$rq/" file

这次是把数据放在file文件里了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP