使用bash从包含三列的文件中创建csv

时间:2014-07-28 17:52:12

标签: bash csv scripting

我是bash脚本的新手。我有一个包含三列数据的常规txt文件。我想把它变成csv格式。

hagabe   3322   7/28/14
uenebh   3878   7/26/14
jheheb   5569   7/27/14

看起来像:

hagabe,3322,7/28/14

我知道我可以拿每一列并制作一个文件,然后使用粘贴来创建csv,但这似乎过度杀戮。必须有一个更简单的方法。简单地删除空格并添加昏迷是否合乎逻辑?任何建议都表示赞赏!

4 个答案:

答案 0 :(得分:3)

只需将awk设置为OFS

即可使用,
awk -v OFS=, '{$1=$1}1' file

输出:

hagabe,3322,7/28/14
uenebh,3878,7/26/14
jheheb,5569,7/27/14

答案 1 :(得分:0)

通过awk,

$ awk '{gsub(/ +/,",")}1' file
hagabe,3322,7/28/14
uenebh,3878,7/26/14
jheheb,5569,7/27/14

答案 2 :(得分:0)

通过sed:

管道文件
cat <file> | sed 's/[ ]\+/,/g'

答案 3 :(得分:0)

$ cat in
hagabe   3322   7/28/14
uenebh   3878   7/26/14
jheheb   5569   7/27/14

$ while read -ra line; do IFS=, eval echo \"\${line[*]}\"; done <in
hagabe,3322,7/28/14
uenebh,3878,7/26/14
jheheb,5569,7/27/14