shell文件中一行切多行,如何高效实现,请高人指点,非常感谢!

文件中每行的内容如下:161737%|1|开户|5|30|%|2|补卡|1|30|%|3|产品变更|2|30|%|4|改密|0|30|%|5|改资料|0|30|%|0|其... 文件中每行的内容如下:
161737%|1|开户|5|30|%|2|补卡|1|30|%|3|产品变更|2|30|%|4|改密|0|30|%|5|改资料|0|30|%|0|其他业务|5|30|
要把每行分别整理成如下6行放入另一个文件中:
2012-12-19 8:00|2012-12-19 8:30|161737|1|开户|5|30|
2012-12-19 8:00|2012-12-19 8:30|161737|2|补卡|1|30|
2012-12-19 8:00|2012-12-19 8:30|161737|3|产品变更|2|30|
2012-12-19 8:00|2012-12-19 8:30|161737|4|改密|0|30|
2012-12-19 8:00|2012-12-19 8:30|161737|5|改资料|0|30|
2012-12-19 8:00|2012-12-19 8:30|161737|0|其他业务|5|30|
尽量高效一些,因为这个文件的数量会达到好几千条,而且每半小时,文件都会有新的数据覆盖进来。
展开
 我来答
小米飞猫
2012-12-25 · 专注于IT监控领域技术
小米飞猫
采纳数:1653 获赞数:4811

向TA提问 私信TA
展开全部

其实很简单,通过shell,然后搭配简单的awk就可以实现。


awk -F"%" '{print $1$2"\n"$1$3"\n"$1$4"\n"$1$5"\n"$1$6"\n"$1$7}' 1


你可以通过shell写一个按行读取文件,然后进行处理。

如果在复杂点awk,应该可以一行实现,不过今天刚出差回来,有点累了,实在懒得想了。

告诉你思路了,虽然可能效率会稍微比awk直接用低点不过完成工作应该没问题。


推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式