- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
这是提示:
Write a Korn shell script (and show the code for it here) that will determine which file in a directory has the maximum number of lines (this may be different than the file that has the maximum number of bytes). After determining the file with the maximum number of lines, the script will print out the name of the file and the number of lines. The script must only focus on files and ignore subdirectories. The command
wc
may be helpful. Do not write this script to be executed interactively.Requirements:
The script must allow either no arguments or 1 argument.
- If zero arguments are specified, the script by default will examine the files in the current directory.
- If 1 argument is specified, the argument must be the name of a directory. The script will then examine the files in the specified directory.
The script must be able to handle the following error conditions:
- More than 1 argument is specified.
- The specified argument is not a directory.
The script file name must be:
maxlines.sh
. The script permissions should be705
.
这是我的代码:
#!/bin/ksh
if [ $# -gt 1];then
echo "There must be 0 or 1 arguments"
exit
fi
if [ -d "$1" ];then
cd $#
fi
max=0
for file in *
do
lines=$(( $( wc -l < "$file" ) ))
if [ $max -lt $lines ];then
max=$lines
fi
done
如有任何建议,我们将不胜感激。我是 Linux 的新手,所以这很令人沮丧。当我运行它时,输出如下所示:
./maxlines.sh[2]: [: ']' missing
./maxlines.sh[9]: cd: 1: [No such file or directory]
wc: standard input: Is a directory
wc: standard input: Is a directory
wc: standard input: Is a directory
wc: standard input: Is a directory
wc: standard input: Is a directory
wc: standard input: Is a directory
wc: standard input: Is a directory
wc: standard input: Is a directory
wc: standard input: Is a directory
wc: standard input: Is a directory
wc: standard input: Is a directory
wc: standard input: Is a directory
最佳答案
正如@JeremyBrooks 已经解释过的,你的脚本中有很多错误,但你并没有走完全错误的道路。
这是我的修复:
#!/bin/ksh
if [ $# -gt 1 ];then
echo "There must be 0 or 1 arguments"
exit
fi
if [ -d "$1" ]
then
cd $1
fi
max=0
for file in $(find . -name "*" -type f)
do
lines=$(( $( wc -l < "$file" ) ))
if [ $max -lt $lines ];then
max=$lines
maxFile=$file
fi
done
echo "file[$maxFile] - max[$max]"
使用 for file in $(find . -name "*"-type f)
你只会得到文件;在您之前的版本中,您还将获得目录,但您想要计算文件行数。
另一种防止排除目录的方法是for file in $(ls -l * | grep -v "^d"|awk '{print $9}'
,但这不如查找
。
当您获得最大行号时,您也忘记了保留文件名,因此在 if
中您必须添加 maxFile=$file
。
然后不要忘记打印结果:echo "file[$maxFile] - max[$max]"
after the for
。
关于linux - 计算目录中文件行数的 KSH shell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35710550/
我有一个包含未定义条目数的数据文件,如下所示: A B C D E.. 1 0 2 5 4 7 4 3 4 1 8 7 4 0 7 1 1 第一行代表工作时间,而不是暂停等交替方式。为了可
我需要有关小型 SQL 查询的帮助。考虑下表: TicketNo | Rules | Audit Result --------------------------------- P
我有一个非常大的表(~1 000 000 行)和带有联合、连接和 where 语句的复杂查询(用户可以选择不同的 ORDER BY 列和方向)。我需要获取分页的行数。如果我运行查询而不计算行数,它会很
我想获取数据帧的行数。 我可以通过 size(myDataFrame)[1] 实现这一点. 有更干净的方法吗? 最佳答案 如果您正在使用 DataFrames具体来说,那么你可以使用 nrow() :
是否可以在带有千位分隔符的 VIM 状态栏中显示行数,最好是自定义千位分隔符? 例子: set statusline=%L 应该导致“1,234,567”而不是“1234567”。 最佳答案 我找到了
我有一个非常基本的问题,但不知道该怎么做。如果 mysql 表中的行数增加,我想刷新页面。我已经尝试了一些不同的事情,比如在表中添加一个单独的列,如果行数和这个值相等,则值为 (id + 1),然后进
我的 mysql TB 中的行数(如 TB 信息中所示)是 11093,而自动递增 ID(从 1 开始)是 11361。为什么会这样? 最佳答案 删除的行不会重置 AI 索引。行数是当前表中的条目数,
我有一个 MySQL 表如下。 emp_no emp_name dob gender 1 A 1978-10-10 Male 2 B
ifstream inFile; inFile.open(filename); //open the input file stringstream strStream; strStream << i
SELECT * FROM table1 WHERE EXISTS (SELECT * FROM table2 WHERE *condition*) 例如,我可以检查是否有 3 行符合 table2
我正在尝试提取 SQL 表中的总行数。 我正在使用以下代码: $rowNum = mysql_query("SELECT COUNT(*) FROM Logs"); $count = mysql_fe
我想知道表格 View 的行宽是多少,UITableViewCell 文本标签的字体是什么,有人可以帮我吗? 最佳答案 NSLog(@"width: %f", cell.frame.size.widt
对于以下内容: def linecount(filename): count = 0 for x in open(filename): count += 1 r
感谢关注。 我用C语言写了一段代码来统计字数、行数和字符数。 while((c = fgetc(fp)) != EOF) { if((char)(c) == ' ' || (char)(c)
我是 matlab 的新手,只需要更改代码中的一个非常小的东西。我有以下矩阵: ans = 1 1 1 1 2 1 2 1
我只是想弄清楚如何确定行数,然后使该数字显示在 HTML 中。 我准备好的声明如下所示: if($stmt = $mysqli -> prepare("SELECT field1, field2, f
PDO 显然无法计算从选择查询返回的行数(mysqli 有 num_rows 变量)。 除了使用 count($results->fetchAll()) 之外,有没有办法做到这一点? 最佳答案 根据手
SELECT count(*) FROM Stack WHERE Id = 33478 GROUP BY SID Output: (No column name) 1 4 对于结果;有两排。怎么退货
IE。如果我们有一个包含400万行的表。 其中具有一个STATUS字段,该字段可以采用以下值:TO_WORK,BLOCKED或WORKED_CORRECTLY。 您是否会在一个仅会更改一次的字段上进行
所以在JTextArea中有一个getLineCount()是否有与JTextPane类似的东西,因为我可以找到任何东西。也许有不同的方法来获得它?我想获取当前存在的行数。 最佳答案 (正如您所指出的
我是一名优秀的程序员,十分优秀!