Cor*_*ein 26 text-processing csv
给定一个像这样的文件
First,Last,Age
Cory,Klein,27
John Jacob,Smith,30
Run Code Online (Sandbox Code Playgroud)
是否有命令行实用程序来转置内容,以便输出看起来像这样
First,Cory,John Jacob
Last,Klein,Smith
Age,27,30
Run Code Online (Sandbox Code Playgroud)
Grz*_*cki 23
$ apt-get install csvtool
Run Code Online (Sandbox Code Playgroud)
然后转换
$ csvtool transpose input.csv > ouput.csv
Run Code Online (Sandbox Code Playgroud)
或在管道中
$ ... | csvtool transpose - | ...
Run Code Online (Sandbox Code Playgroud)
Gil*_*il' 17
CSV 解析不能仅使用 POSIX 工具轻松完成,除非您使用的是不带引号的简化 CSV 变体(以便逗号不能出现在字段中)。即使这样,使用 awk 或其他文本处理工具似乎也不容易完成这项任务。您可以将 Perl 与Text::CSV、Python 与csv、R 与read.csvRuby 与CSV 一起使用,……(所有这些都是相应语言的标准库的一部分,除了 Perl。)
例如,在 Python 中:
import csv, sys
rows = list(csv.reader(sys.stdin))
writer = csv.writer(sys.stdout)
for col in xrange(0, len(rows[0])):
writer.writerow([row[col] for row in rows])
Run Code Online (Sandbox Code Playgroud)
小智 9
ruby -rcsv -e 'puts CSV.parse(STDIN).transpose.map &:to_csv' < in.csv > out.csv
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22481 次 |
| 最近记录: |