【问题标题】:How to convert a .csv file into a .txt format如何将 .csv 文件转换为 .txt 格式
【发布时间】:2020-04-29 00:49:49
【问题描述】:

excel 中的 csv 文件并将其保存为 .txt 并且当我使用 wc -l .txt 格式 17768 vs 17769 少了一行。 1. 这是正常的吗?如果是,转换中丢失了哪一行? 2. 在 bash 中进行这种转换的最简单方法是什么? 谢谢!

【问题讨论】:

  • 我很确定您可以将 .csv 视为 .txt 文件(在文本编辑器中打开 csv,应该很容易分辨)
  • .csv 文件已经是文本,无论它是否在 Excel 中。不需要或不可能转换为.txt。我们没有文件来尝试找出为什么存在一行差异;你做。您需要使用 diff 实用程序或打开文件并自己查看它们以找到不同的行。
  • 我投票结束这个问题,因为 CSV 文件是文本文件。

标签: bash csv unix


【解决方案1】:

wc -l 根据行分隔符计数记录 (\n) 很可能您的最后一条记录没有行分隔符。

例如echo 命令在末尾添加一个新行,但printf 不会。

演示:

$echo -e "1\n2" | wc -l
2
$printf "1\n2" |  wc -l
1
$
$echo -e "1\n2" | od -c
0000000   1  \n   2  \n
0000004
$printf "1\n2" |  od -c
0000000   1  \n   2
0000003
$

printf 和 echo 都是打印 2 条记录。但由于我们在字符串末尾没有行分隔符 (\n),wc 仅显示 1 条记录

$echo -e "1\n2"
1
2
$printf "1\n2"
1
2$

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-20
    • 1970-01-01
    • 1970-01-01
    • 2015-12-11
    • 2019-08-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多