shell改写文件内容格式求助

俊凯 2013-05-03 07:33:42
文件格式:
20130502183025
3:YYSZ:5$0
6:ZWSZ:6$8
20130503193028
3:YYSZ:4$1
6:ZWSZ:6$0
......

想用shell改写如下格式:
3:YYSZ:5$0:20130502183025
6:ZWSZ:6$8:20130502183025
3:YYSZ:4$1:20130503193028
6:ZWSZ:6$0:20130503193028

该如下改写,求助各位大神,谢谢!
这个时间20130502183025后面的数据都是两行的
...全文
159 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
youyou1912 2013-05-11
  • 打赏
  • 举报
回复
sed也可以.
sed "/^[^:]*$/{h;d;b};/^.*$/{G;s/\n/:/g}" data.txt
ljc007 2013-05-06
  • 打赏
  • 举报
回复
引用 5 楼 Mr_Ringht 的回复:
后面那个1是什么作用啊??
awk命令里面花括号后面的1是什么意思? http://bbs.chinaunix.net/viewthread.php?tid=1552660#pid11095215
linux-c 2013-05-06
  • 打赏
  • 举报
回复
引用 4 楼 ljc007 的回复:
awk '!/:/{s=$0;next}{$0=$0":"s}1' urfile
后面那个1是什么作用啊??
ljc007 2013-05-06
  • 打赏
  • 举报
回复
awk '!/:/{s=$0;next}{$0=$0":"s}1' urfile
Linux-Torvalds 2013-05-06
  • 打赏
  • 举报
回复
$ awk '{if((NR-1)%3==0)v=$0;else print $0":"v}' 1.txt 
3:YYSZ:5$0:20130502183025
6:ZWSZ:6$8:20130502183025
3:YYSZ:4$1:20130503193028
6:ZWSZ:6$0:20130503193028
Linux-Torvalds 2013-05-06
  • 打赏
  • 举报
回复
引用 5 楼 Mr_Ringht 的回复:
引用 4 楼 ljc007 的回复:
awk '!/:/{s=$0;next}{$0=$0":"s}1' urfile
后面那个1是什么作用啊??
条件true,然后omit了default action,print
youyou1912 2013-05-05
  • 打赏
  • 举报
回复
哎..awk的版本一句话就够了. data.txt为输入文件.

awk 'i%3==0{last=$0} i%3!=0 {print $0 ":" last} {i=i+1}' data.txt
qq120848369 2013-05-03
  • 打赏
  • 举报
回复

cat data.txt 

20130502183025
3:YYSZ:5$0
6:ZWSZ:6$8
20130503193028
3:YYSZ:4$1
6:ZWSZ:6$0

awk 'BEGIN{i=0;}{rec[i]=$0; if(i==2){print rec[1]":"rec[0]"\n"rec[2]":"rec[0];} i=(i+1)%3;}' data.txt
youyou1912 2013-05-03
  • 打赏
  • 举报
回复
楼主, 给你几个命令, 要给分哦! 前提 1. 每个时间后面都是两行 2. 时间都是以20开头, 不存在19开头. 结果保存在result文件里面
cat test.txt|grep ':' -v|sed 's/^20/:20/'|cat -n|tr -s '\t' ' ' > temp1
cat temp1 temp1 | sort -n -t ' ' -k 2| cut -f3 -d ' '|cat -n|tr -s '\t' ' '|cut -c 2- > temp1
cat test.txt | grep ':'|cat -n|tr -s '\t' ' '|cut -c 2- > temp2
join temp2 temp1 | cut -f2- -d ' '|sed 's/\s:20/:20/' > result
rm temp1
rm temp2

742

社区成员

发帖
与我相关
我的任务
社区描述
该论坛主要探讨Linux系统在IBM Power平台的安装、部署、应用开发等话题,并为网友们提供自由交流的平台。
社区管理员
  • Power Linux社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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