我在选择指定行并将第二行连接到一行时遇到问题.
cat lol1.txt
2015-11-15 12:44:34
Name Value1 Value2
lol1 3 2
lol2 2 5
2015-11-15 12:44:44
Name Value Value2
lol1 7 1
lol2 5 1
2015-11-15 12:44:54
Name Value Value2
lol1 3 9
lol2 9 2
和
cat lol2.txt
2015-11-16 10:23:31
Name Value Value2
lol1 3 4
lol2 4 7
2015-11-16 10:23:41
Name Value Value2
lol1 7 5
lol2 9 2
2015-11-16 10:23:51
Name Value Value2
lol1 2 4
lol2 2 5
和命令:
cat lol.txt lol2.txt | grep 'lol1\|2015'
返回:
2015-11-15 12:44:34
lol1 3 2
2015-11-15 12:44:44
lol1 7 1
2015-11-15 12:44:54
lol1 3 9
2015-11-16 10:23:31
lol1 3 4
2015-11-16 10:23:41
lol1 7 5
2015-11-16 10:23:51
lol1 2 4
现在,我必须将每一行都连接到一起.我的意思是:
2015-11-15 12:44:34 lol1 3 2
2015-11-15 12:44:44 lol1 7 1
2015-11-15 12:44:54 lol1 3 9
2015-11-16 10:23:31 lol1 3 4
2015-11-16 10:23:41 lol1 7 5
2015-11-16 10:23:51 lol1 2 4
还有一个问题.如何使用日期和时间选择行而不是grep 2015,因为明年日期将从2016年开始,我将不得不更改脚本.
谢谢.
解决方法:
由于您计划使用awk,因此可以保存grep,因此无论如何猫都是无用的.
这个awk单线功能可以完成您的工作.
awk '/^2015/{printf "%s%s",(NR>1?"\n":""),$0}/lol1/{printf " %s",$0}' f1 f2
注意
> f1,f2是您的两个文件.它给出了预期的输出.
>上面的行并不遵循每隔一行的规则,而是按时间戳对lol1数据进行分组,这可能是您的真正要求.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。