统计指定目录文件数的Shell脚本

需积分: 0 0 下载量 174 浏览量 更新于2024-01-14 收藏 2.8MB PDF 举报
实验21报告 实验项目名称:Shell程序设计 学生姓名:王子腾 专业:软件工程 学号:3180102173 实验日期:2020年8月18日 实验环境: 计算机配置: 处理器:Intel Core i7-8550 CPU @ 1.80GHz 1.99Ghz 内存:8GB DDR4 2400MHz 硬盘:128GB PCle固态硬盘 1TB硬盘 显卡:NVIDIA GeForce 150MX 操作系统环境:Windows 10家庭中文版、Linux版本:Ubuntu 18.04 一、 实验目的 通过编写Shell脚本,实现统计指定目录下的普通文件、子目录和可执行文件的数目,以及输入一个字符串,忽略并删除非字母字符的功能。 二、 实验内容和结果及分析 1. 编写Shell脚本,统计指定目录下的普通文件、子目录及可执行文件的数目 首先,根据题目要求,编写了一个Shell脚本用于统计指定目录下的普通文件、子目录及可执行文件的数目。该脚本通过使用`find`命令将指定目录下的文件和子目录遍历出来,并分别统计其数量,最终输出统计结果。 ```shell #!/bin/bash # 统计指定目录下的普通文件、子目录和可执行文件的数目 echo "请输入要统计的目录路径:" read path # 统计普通文件数量 file_num=$(find $path -type f | wc -l) echo "普通文件数量:$file_num" # 统计子目录数量 dir_num=$(find $path -type d | wc -l) echo "子目录数量:$dir_num" # 统计可执行文件数量 exe_num=$(find $path -type f -executable | wc -l) echo "可执行文件数量:$exe_num" ``` 执行该脚本,输入要统计的目录路径后,即可得到统计结果,验证了脚本的正确性。 2. 编写一个Shell脚本,输入一个字符串,忽略(删除)非字母字符 其次,根据题目要求,编写了一个Shell脚本,用于输入一个字符串后,忽略并删除非字母字符。该脚本通过使用`sed`命令和正则表达式,删除输入字符串中的非字母字符,并输出处理后的字符串。 ```shell #!/bin/bash echo "请输入一个字符串:" read input_str # 删除非字母字符 new_str=$(echo $input_str | sed 's/[^a-zA-Z]//g') echo "处理后的字符串:$new_str" ``` 执行该脚本,输入一个字符串后,即可得到处理后的字符串,验证了脚本的正确性。 三、结论 通过本次实验,我成功编写了两个Shell脚本,分别实现了统计指定目录下的普通文件、子目录和可执行文件的数目,以及输入一个字符串后,忽略并删除非字母字符。在实验过程中,我熟练掌握了Shell脚本的编写和运行方法,加深了对Linux命令和正则表达式的理解,提高了对Shell程序设计的实践能力。同时,实验还检验了我的编程能力和解决问题的能力,为我今后的学习和工作打下了良好的基础。