csv文件并将其另存为.txt,当我使用 wc -l .txt格式的17768比17769少一行。 1.这是否正常?如果这样,转换中丢失了哪一行? 2.在bash中进行此转换的最简单方法是什么? 谢谢!
答案 0 :(得分: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$