我有一个输入csv,它是管道分隔的,我想从中选择几个列作为逗号分隔的文件。
使用下面的代码,我可以读取输入的csv并将选定的列保存为新的csv,但它仍然是管道分隔的:
cut -d "|" -f1-2,15,28-31,35 < input_file.csv > output_file.csv当我尝试使用output-delimiter选项时,我会得到一个非法的选项错误。
我试过:
cut -d "|" -f1-2,15,28-31,35 --output-delimiter="," < input_file.csv > output_file.cv和
cut -d "|" -f1-2,15,28-31,35 < input_file.csv > output_file.csv --output-delimiter=","但我犯了个错误
cut: illegal option -- -
usage: cut -b list [-n] [file ...]
cut -c list [file ...]
cut -f list [-s] [-d delim] [file ...]发布于 2015-11-29 22:16:46
我的cut不理解--output-delimiter指令。您确定您有一个版本的cut可以吗?
其中一个想法是首先将|转换为,,然后删除以下内容:
tr '|' ',' < input_file.csv | cut -d ',' -f1-2,15,28-31,35 > output_file.csv另一个选项是awk,它理解输入和输出的不同字段分隔符:
awk 'BEGIN {FS="|"; OFS=","}
{print $1, $2, $15, $28, $29, $30, $31, $35}' \
< input_file.csv >output_file.csv干杯
https://stackoverflow.com/questions/33988682
复制相似问题