按列的值将多行合并为单行
我有一个非常大的制表符分隔文本文件。文件中的许多行对于文件中的一列具有相同的值。我想把它们放在同一行。例如:
a foo
a bar
a foo2
b bar
c bar2
运行脚本后,它应该变成:
a foo;bar;foo2
b bar
c bar2
如何在 shell 脚本或 Python 中执行此操作?
谢谢。
I have a tab-delimited text file that is very large. Many lines in the file have the same value for one of the columns in the file. I want to put them into same line. For example:
a foo
a bar
a foo2
b bar
c bar2
After run the script it should become:
a foo;bar;foo2
b bar
c bar2
how can I do this in either a shell script or in Python?
thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
使用 awk,您可以尝试这个
因此,如果您将此 awk 脚本保存在名为 awkf.awk 的文件中,并且如果您的输入文件是 ifile.txt,请运行该脚本
sed 脚本将删除前导 ;
希望这有帮助
With awk you can try this
So if you save this awk script in a file called awkf.awk and if your input file is ifile.txt, run the script
The sed script is to remove out the leading ;
Hope this helps
未测试
not tested
使用 Python 2.7 测试:
Tested with Python 2.7:
Perl 方法:
输出:
A Perl way to do it:
output:
输出(制表符转换为空格,因为 Stack Overflow 破坏了输出):
Output (with tabs converted to spaces because Stack Overflow breaks the output):
未经测试,但应该可以。如有任何疑问,请发表评论
Untested, but should work. Please leave a comment if there are any concerns