use*_*413 3 command-line bash csv text-processing
考虑这个数据:
#!/usr/bin/env bash
cat > example_file.txt <<EOL
group, value, price
1, 3.21, 3.21
1, 3.42, 4.11
1, 3.5, 1.22
2, 4.1, 9.2
2, 4.2, 2.11
EOL
Run Code Online (Sandbox Code Playgroud)
我想将“值”列移到前面:
value, price, group
3.21, 3.21, 1
3.42, 4.11, 1
3.5, 1.22, 1
4.1, 9.2, 2
4.2, 2.11, 2
Run Code Online (Sandbox Code Playgroud)
问题是:列的顺序(甚至列的数量或许多列的名称——除了始终存在的“值”)因文件而异。所以我必须按名称(而不是顺序)选择值列。
我怎样才能做到这一点?
与伟大的米勒 ( http://johnkerl.org/miller/doc ) 是很容易的
mlr --csv reorder -f " value, price,group" input.csv
Run Code Online (Sandbox Code Playgroud)
你有
value, price,group
3.21, 3.21,1
3.42, 4.11,1
3.5, 1.22,1
4.1, 9.2,2
4.2, 2.11,2
Run Code Online (Sandbox Code Playgroud)
请注意:我已经编辑了我的命令,考虑到问题 CSV 的字段名称中的空格
| 归档时间: |
|
| 查看次数: |
1903 次 |
| 最近记录: |