在Linux中,编写一个shell脚本,用于统计指定目录下所有文件的行数。

简介: 在Linux中,编写一个shell脚本,用于统计指定目录下所有文件的行数。

编写一个shell脚本,用于统计指定目录下所有文件的行数,可以通过循环遍历目录下的每一个文件并使用wc -l命令来获取每个文件的行数。以下是一个基本示例:

#!/bin/bash
# 用户输入要统计行数的目录路径
read -p "请输入要统计行数的目录路径: " directory
# 避免用户直接输入了文件名而不是目录
if [ ! -d "$directory" ]; then
echo "错误:这不是一个有效的目录!"
exit 1
fi
# 遍历目录下的所有非目录项(即文件)
for file in "$directory"/*
do
# 排除子目录
if [ ! -d "${file}" ]; then
# 获取当前文件的行数
    lines=$(wc -l < "${file}")
echo "文件:${file} 行数:${lines}"
fi
done

该脚本首先提示用户输入一个目录路径,然后检查该路径是否确实为一个存在的目录。接下来,通过for循环遍历目录下所有的文件,并利用管道将文件内容传递给wc -l命令,从而得到每个文件的行数。最后,脚本会逐个输出文件名及其对应的行数。

如果你需要包括子目录中的所有文件,可以使用find命令替代for循环:

#!/bin/bash
read -p "请输入要统计行数的目录路径: " directory
if [ ! -d "$directory" ]; then
echo "错误:这不是一个有效的目录!"
exit 1
fi
# 使用find命令递归查找目录下所有普通文件,并统计行数
find "$directory" -type f -exec wc -l {} \; | awk '{print $2, "\t", $1}'
BASH 复制 全屏

在上述改进版中,find命令加上 -type f 参数以确保只查找文件而非目录,并通过 -exec 参数执行 wc -l 命令处理找到的每个文件。awk用于格式化输出,使其显示为“行数 文件名”的形式。

相关文章
|
17天前
|
Linux 数据安全/隐私保护 Windows
Linux共享Windows目录
Linux共享Windows目录
|
10天前
|
Linux 应用服务中间件 nginx
|
9天前
|
Shell Linux 开发工具
linux shell 脚本调试技巧
【9月更文挑战第3天】在Linux中调试shell脚本可采用多种技巧:使用`-x`选项显示每行命令及变量扩展情况;通过`read`或`trap`设置断点;利用`echo`检查变量值,`set`显示所有变量;检查退出状态码 `$?` 进行错误处理;使用`bashdb`等调试工具实现更复杂调试功能。
|
16天前
|
Linux
linux如何去掉目录背景颜色
linux如何去掉目录背景颜色
16 1
|
20天前
|
JSON Linux 网络安全
【Azure 应用服务】如何从App Service for Linux 的环境中下载Container中非Home目录下的文件呢?
【Azure 应用服务】如何从App Service for Linux 的环境中下载Container中非Home目录下的文件呢?
|
22天前
|
监控 Shell Linux
在Linux中,如何使用shell脚本检测磁盘使用率?
在Linux中,如何使用shell脚本检测磁盘使用率?
|
22天前
|
Shell Linux 开发工具
在Linux中,如何编写shell脚本将当前目录下大于10K的文件转移到/tmp目录下?
在Linux中,如何编写shell脚本将当前目录下大于10K的文件转移到/tmp目录下?
|
10天前
|
Shell
Shell脚本有哪些基本语法?
【9月更文挑战第4天】
35 17
|
10天前
|
存储 Unix Shell
shell脚本编程基础
【9月更文挑战第4天】
26 12