写一个shell脚本 遍历某一个目录下所有的文件的行数和大小
时间: 2023-05-18 17:07:00 浏览: 466
可以使用以下的 shell 脚本来遍历某个目录下所有文件的行数和大小:
```bash
#!/bin/bash
# 遍历的目录
dir_path="/path/to/directory"
# 遍历目录下的所有文件
for file_path in $(find "$dir_path" -type f); do
# 统计文件的行数
line_count=$(wc -l < "$file_path")
# 统计文件的大小
size=$(du -h "$file_path" | awk '{print $1}')
# 输出文件名、行数和大小
echo "$file_path: $line_count lines, $size"
done
```
请注意,上述脚本中的 `dir_path` 变量需要替换为你要遍历的目录的路径。
相关问题
shell脚本 遍历 文件名以report.txt 结尾 的所有文件;2、 统计遍历结果中 各个文件中 Pass 关键字的 个数
在Shell脚本中,你可以使用`find`命令来遍历指定目录下的所有以`report.txt`结尾的文件,并使用`grep`命令统计每个文件中包含关键词"Pass"的数量。下面是一个简单的示例:
```bash
#!/bin/bash
# 定义需要搜索的目录,这里假设是当前目录
dir="."
# 使用find命令查找所有的report.txt文件
files=$(find $dir -type f -name "report.txt")
# 对每个文件进行处理,使用grep查找Pass并获取行数
for file in $files; do
passes=$(grep -c 'Pass' $file)
echo "File: $file contains ${passes} occurrences of 'Pass'."
done
# 输出每个文件统计结果
echo "Summary:"
total_passes=0
for file in $files; do
total_passes=$((total_passes + passes))
echo "$file: ${passes}"
done
echo "Total Pass occurrences across all files: $total_passes"
2. 编写一个简单的 Shell 脚本,实现以下功能: - 打印出当前时间和日期 - 列出当前目录下所有以".txt"结尾的文件 - 统计当前目录下所有以".txt"结尾的文件的行数。
下面是一个简单的 Shell 脚本示例,实现了您提到的功能:
```bash
#!/bin/bash
# 打印当前时间和日期
echo "当前时间与日期:"
date
# 列出当前目录下所有以 .txt 结尾的文件
echo "当前目录下所有.txt文件:"
find . -type f -name "*.txt"
# 统计当前目录下所有 .txt 文件的行数
echo "统计.txt文件总行数:"
total_lines=0
for file in *.txt; do
total_lines=$((total_lines + $(wc -l < "$file")))
done
echo "总共有 $total_lines 行."
# 输出结果
echo "总结完成."
```
这个脚本分为三个部分:
1. 使用 `date` 命令打印当前时间和日期;
2. 使用 `find` 命令查找当前目录及其子目录下所有的 `.txt` 结尾的文件;
3. 遍历每个 `.txt` 文件,使用 `wc -l` 命令计算每行的数量,并累加到变量 `total_lines` 中,最后打印出总的行数。
阅读全文