首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用剪切将管道分隔符转换为逗号分隔

使用剪切将管道分隔符转换为逗号分隔
EN

Stack Overflow用户
提问于 2015-11-29 22:03:37
回答 1查看 3K关注 0票数 0

我有一个输入csv,它是管道分隔的,我想从中选择几个列作为逗号分隔的文件。

使用下面的代码,我可以读取输入的csv并将选定的列保存为新的csv,但它仍然是管道分隔的:

代码语言:javascript
复制
cut -d "|" -f1-2,15,28-31,35 < input_file.csv > output_file.csv

当我尝试使用output-delimiter选项时,我会得到一个非法的选项错误。

我试过:

代码语言:javascript
复制
cut -d "|" -f1-2,15,28-31,35 --output-delimiter="," < input_file.csv > output_file.cv

代码语言:javascript
复制
cut -d "|" -f1-2,15,28-31,35 < input_file.csv > output_file.csv --output-delimiter=","

但我犯了个错误

代码语言:javascript
复制
cut: illegal option -- -
usage: cut -b list [-n] [file ...]
       cut -c list [file ...]
       cut -f list [-s] [-d delim] [file ...]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-29 22:16:46

我的cut不理解--output-delimiter指令。您确定您有一个版本的cut可以吗?

其中一个想法是首先将|转换为,,然后删除以下内容:

代码语言:javascript
复制
tr '|' ',' < input_file.csv | cut -d ',' -f1-2,15,28-31,35 > output_file.csv

另一个选项是awk,它理解输入和输出的不同字段分隔符:

代码语言:javascript
复制
awk 'BEGIN {FS="|"; OFS=","} 
           {print $1, $2, $15, $28, $29, $30, $31, $35}' \
     < input_file.csv >output_file.csv

干杯

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33988682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档