use*_*171 4 bash comparison arguments
我想做这样的事情:
if [ $(wc -l $f) -lt 2 ]
Run Code Online (Sandbox Code Playgroud)
其中$ f是一个文件.当我运行它时,我收到错误消息:
[: too many arguments
Run Code Online (Sandbox Code Playgroud)
有人知道如何在我的命令中修复这一行吗?
完整的脚本是:
for f in *.csv
do
if [ $(wc -l $f) -lt 2 ]
then
echo $f
fi
done
Run Code Online (Sandbox Code Playgroud)
至少在我的情况下wc -l filename,输出32 filename是32行数.所以你必须在行数后删除文件名.你可以改变你的代码
if [ $(wc -l $f) -lt 2 ]
Run Code Online (Sandbox Code Playgroud)
至
if [ $(wc -l $f | cut -f1 -d' ') -lt 2 ]
Run Code Online (Sandbox Code Playgroud)
要么
if [ $(wc -l < $f) -lt 2 ]
Run Code Online (Sandbox Code Playgroud)
如果没有解决您的问题,请将输出添加wc -l filename到您的问题或作为评论.