2017-09-15 68 views
0

我正在使用ksh并在CentOS和Ubuntu VM中测试了我的脚本,并且没有任何问题。但是,当我将文件迁移到unix盒时,wc -l似乎不起作用。以下是我的脚本。unix ksh从文件中获取行数

filelist=myfile.txt  
filecount=`wc -l ${filelist} | cut -d " " -f 1` 
    echo "File count for $filelist is $filecount" 

我已经看到了权限,我已经阅读过所有用户。是什么导致它在unix中出现问题? ksh中是否有其他方法来获取文件中的行数?我正在考虑使用read line,然后为每个增加一个变量作为我的最后一招。

+0

是你看到什么输出,无论是剧本和公正'WC -l myfile.txt'? –

+0

我必须再次将它部署到unix盒来测试。但是在我的CentOS和Ubuntu VM中,我得到了计数和文件名 – mtryingtocode

+2

顺便说一句,如果您从文件重定向而不是将其作为参数传递,您会得到*计数。 – o11c

回答

1

您的脚本没有任何问题,因此您的部署可能存在问题。也许Windows桌面涉及到复制脚本的文本?在这种情况下,每行将包含CRLF作为行尾标记,而不是LF

对我来说,让下面的输出:

: No such file or directory 
+0

使用记事本++在将文件部署到Unix之前,我对文件进行了EOL转换。无论如何,我去我的最后手段,只是使用读线和增量变量,因为我没有时间 – mtryingtocode