如何将多个文本文件中的一些行附加到另一个文本文件中?
我的目录中有 9 个文本文件,每个文件有 1000 行。我想从每个文件中取出前 500 行,然后将它们全部写入另一个文本文件,并从每个文件中取出其余的(最后 500 行)以执行与之前相同的操作。
awk '{if (NR<=500) {print}}' 1.txt > 2.txt # I do it 9 times, then I use cat to append.
awk '{if (NR>500) {print}}' 3.txt > 4.txt
或者
awk 'NR>500' 3.txt > 4.txt
我用 awk 来做,但我想学习 Perl。
I have got nine text files in a directory, each has 1000 lines. I want to take the first 500 lines from each, then write all of them in order to another text file, and take the rest (the last 500 lines) from each one to do the same I do before.
awk '{if (NR<=500) {print}}' 1.txt > 2.txt # I do it 9 times, then I use cat to append.
awk '{if (NR>500) {print}}' 3.txt > 4.txt
or
awk 'NR>500' 3.txt > 4.txt
I did it with awk, but I want to learn Perl instead.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
在 Perl 中
$.
包含上次访问的文件句柄的行号。在 while ($. <=500 ) 循环中,您可以获得所需的行数。In Perl
$.
has line number of last accessed filehandle. Inwhile ($. <=500 )
-cycle you can get wanted count of lines.你的解释可能更符合你的例子。但基于这样的想法:您希望所有 9000 行都放入一个文件中。
我不知道你要在哪里指定你的名字,所以我使用了命令行。
Your explanation could agree with your example more. But based on the idea that you want all 9000 lines to go into a single file.
I didn't know where you were going to specify your names, so I used the command line.
我删除了 foreach 语句然后它就起作用了,是不是很奇怪。顺便感谢你的帮助..
i deleted foreach statement then it works, isnt that weird. thanks for ur help by the way..