我在https://api.data.gov/ed/collegescorecard/v1/schools?api_key=[my_API_key]
的服务器上使用Curl下载了一个JSON文件(I have uploaded the file to TinyUpload if you want to play around with it.)
下载的文件是1.5MB,并且具有非常大(且有效)的JSON对象。但是,在服务器上,当我对文件运行命令wc -l
时,它返回0.运行wc -c
返回正确的字节数。
我在TextEdit中打开文件,看起来很好。我注意到我的服务器上的man wc
(CentOS 5.5)和我的Mac(Yosemite)上的man wc
似乎对-l
标志的作用有不同的描述:
CentOS 5.5:
打印换行计数
OSX 10.10.5 Yosemite
每个输入文件中的行数写入标准输出。
哪个手册是正确的? wc -l
计算行数或换行数吗?如果它确实计算了行而不是新行,那么即使文件中有一行,wc -l
也可以返回0吗?
Mark对this related SO post中基于Windows的字符的评论是否也可能是正确的诊断?我针对我的文件运行了cat -vet
,但是使用grep找不到^M
,并且手动搜索的文本太多了。
答案 0 :(得分:1)
OS X上的联机帮助页也说(说明中的第一段):
一条线被定义为由<界定的字符串。换行符>字符。
因此,两个版本的页面之间没有矛盾。
由于您的文件没有换行符,wc -l
正确返回0。