当前位置: 首页 > news >正文

文件目录与检索综合练习题

文章目录

  • 前言
  • 一、基础部分
  • 二、参数应用
  • 三、参数进阶
  • 四、组合应用
  • 五、归档压缩
  • 六、统计与分析
  • 总结


前言

这部分练习题帮助大家更好的掌握命令


一、基础部分

1.用grep在error.log中查找所有含"Timeout"的行
2.使用find在/var/log下搜索7天内修改过的.log文件
3.对data.txt按第二列数值降序排列(列以空格分隔)
4.去除list.txt中连续的重复行
5.用tr将file.txt中所有小写字母转为大写
6.提取access.log中第5列(以冒号分隔)的IP地址
7.用which确认python3的可执行文件路径
8.用whereis查找nginx的配置文件位置
9.比较v1.conf和v2.conf的差异,输出上下文3行
10.在/etc目录下递归查找所有.conf文件
11.转换output.log所有字母为大写
12.统计/home各用户的文件数量
13.过滤同时含"WARNING"和"2023-10"的行
14.查找/usr/bin下root用户的执行文件
15.按扩展名分组统计filelist.txt文件名
16.查找~/.ssh目录下的所有隐藏文件
17.将data.txt按第二列数值逆序排列
18.合并file1.txt和file2.txt并去重
19.删除log.txt中所有空行
20.比较dir1和dir2的目录结构差异
21.递归查找/var/log所有含"ERROR"的.log文件
22.将access.log按第四列IP地址排序
23.去除data.csv中连续重复行
24.DOS转UNIX换行格式
25.提取employees.csv第三列(逗号分隔)
26.查找nginx.conf所有可能路径
27.显示python可执行文件路径
28.比较config.old与config.new差异
29.批量修改.tmp为.bak后缀
30.查找/etc下7天前修改且>1MB的文件
31.查找普通文件容量小于100M并删除
32.查找普通文件容量大于100M并显示详细信息
33.find结合xargs命令进行结果的再处理(删除小于100M)
参考答案:
1.grep -n “Timeout” /error.log
2.find /var/log -name “.log" -mtime -7
3.sort -k2,2nr data.txt 或者 sort -r | cut -d ’ ’ -f2 data.txt
4.cat list.txt | uniq
5.tr ‘a-z’ ‘A-Z < file.txt
6.cut -d’:’ -f5 access.log
7.which python3
8.whereis -b nginx
9.diff -C 3 v1.conf v2.conf
10.find /etc -name "
.conf”
11.tr ‘a-z’ ‘A-Z’ output.log
12.find /home -type f -printf “%u\n” | sort | uniq -c
13.grep ‘WARNING’ | grep ‘2023-10’
14.find /usr/bin -user root -perm /+x
15.cut -d’.’ -f2 filelist.txt | sort | uniq -c或者rev filelist.txt | cut -d’.’ -f1 | rev | sort | uniq -c
16.find ~/.ssh -name “.*”
17.sort -k 2 -rn | uniq data.txt
18.cat file1.txt file2.txt | uniq
19.tr -s ‘\n’ < log.txt | sed ‘/^KaTeX parse error: Expected group as argument to '\r' at position 185: …iq 24.tr -d '\r'̲ < dosfile.txt …/.bak/’ {} +
30.find /etc/ -type f -size +1MB -mtime 7
31.find -type f -size -100M -exac rm {};
32. find -type f -size +100M -exac ls - lh {};
33. find /root/c2407-3/ -size -100M -type f | xargs rm -rf

二、参数应用

grep相关​
31. 在多个文件(.log)中搜索"ERROR"并显示文件名
32. 忽略大小写查找"warning"并标红关键词
33. 显示匹配"success"的行及其后2行内容
34. 统计access.log中出现"404"的次数
35. 使用正则表达式匹配以"192.168"开头的IP
参考答案:
find . -type f -name "
.log" -exec grep -l “ERROR” {} ;
grep -i --color=auto “warining” *.log
grep “success” -A2 *.log
grep -c “404” /var/log/access.log
grep -E ‘192.168’ access.log

​find相关​
37. 查找/home下大于100MB的文件
38. 搜索30天前修改的.bak文件并删除
39. 查找/tmp目录下空文件
40. 组合条件:查找属主为root且权限644的文件
41. 对找到的.tmp文件执行ls -l操作

参考答案:
find /home -type f -size +100MB
find -type f -name “.bak" -mtime +29 -exac rm {} ;
find /tmp -type f -size 0c
find -type f -user root -perm 644
find -type f -name "
.tmp” -exac ls -l {} ;

​sort/uniq​
42. 对users.csv按第三列(数字UID)排序
43. 去重非连续重复行(需先排序)
44. 统计words.txt中每个单词的出现频率
45. 按文件大小(第五列)排序ls -l的输出
46. 合并两个已排序文件并去重

参考答案:
cut -d"," -f3 ceshi.txt | sort -r 或者 sort -t, -k3,3n ceshi.txt
sort file.txt | uniq
tr ’ ’ ‘\n’ < words.txt | sort | uniq -c
ls -l | sort -k5,5n
sort -m file1.txt file2.txt | uniq

​tr/cut​
48. 删除data.csv中的Windows换行符(^M)
49. 将file.txt中的制表符替换为逗号
50. 截取ps aux输出中的CPU占用率(第三列)
51. 从ifconfig输出中提取所有IPv4地址
52. 过滤/etc/passwd中所有用户的shell类型(第7列)

参考答案:
tr -d ‘\r’ < data.csv > data_unix.csv
tr ‘\t’ ‘,’ < file.txt > file_comma.txt
ps aux | awk ‘{print $3}’
ifconfig | grep -oE ‘inet [0-9]+.[0-9]+.[0-9]+.[0-9]+’ | awk ‘{print $2}’
awk -F: ‘{print $7}’ /etc/passwd

三、参数进阶

递归搜索代码目录中所有包含"TODO:"注释的文件
查找30天前修改且大于100MB的备份文件
统计日志文件中每个IP地址出现的次数
将students.tsv文件中的制表符替换为逗号
显示system.log中匹配"warning"及其后3行内容
查找并删除/tmp下所有空文件
按文件大小逆序排列当前目录内容
过滤日志中所有符合邮箱格式的字符串
批量修改文件名后缀(.htm→.html)
提取ifconfig命令输出中的所有IPv4地址

四、组合应用

查找所有.conf文件并统计总行数
分析日志中访问量TOP5的页面路径
自动清理7天前的日志压缩包(.tar.gz)
将ps aux输出转换为CSV格式
对比两个目录中同名文件的内容差异

五、归档压缩

打包project目录为.tar文件
解压backup.zip到指定目录/data
使用最高压缩率压缩database.db
查看archive.tar.gz中的文件列表
创建加密的zip压缩包(密码:123456)

六、统计与分析

统计document.md的总行数
查看/var目录占用的磁盘空间
交互式分析/home的存储分布
统计当前目录的文件类型分布
找出占用空间最大的前10个文件
实时监控/tmp目录大小变化
对比两个月份日志文件的行数差异
生成目录树形大小报告
检测异常增长的日志文件
统计所有用户的主目录大小排名

总结

提示:这些练习题能更好的帮助大家熟练这些命令 如有不对的地方请告知,有些命令没有附答案的后续会补上

相关文章:

  • ROS2学习(2)------第一个程序
  • 专项智能练习(定义判断)
  • QT设置MySQL驱动
  • 还有哪些领域可以应用北斗卫星通讯?
  • Java类一文分解:JavaBean,工具类,测试类的深度剖析
  • 如何卸载并重新安装 Mozilla Firefox 浏览器
  • iOS视频封装步骤解析
  • 【skywalking】index“:“skywalking_metrics-all“},“status“:404}
  • 题目:两个线程交替输出1-100的数字,例如:t1--》1,t2--》2,....
  • 本地文件操作 MCP (多通道处理) 使用案例
  • DeepSearch:字节新一代 DeerFlow 框架
  • Swagger使用
  • 全栈项目中是否可以实现统一错误处理链?如果可以,这条链路该如何设计?需要哪些技术支撑?是否能同时满足性能、安全性和用户体验需求?
  • 机器学习 --- 模型选择与调优
  • 山东大学计算机图形学期末复习8——CG11下
  • ElfBoard技术实战|ELF 2开发板本地部署DeepSeek大模型的完整指南
  • C#发送文件到蓝牙设备
  • 【实战篇】低代码报表开发——平台运营日报表的开发实录
  • Spring 框架 JDBC 模板技术详解
  • SQL实战:06交叉日期打折问题求解
  • 对谈|“大礼议”:嘉靖皇帝的礼法困境与权力博弈
  • “家国万里时光故事会” 举行,多家庭共话家风与家国情怀
  • 新华时评:让医德医风建设为健康中国护航
  • 泽连斯基抵达安卡拉,称乌将派出最高级别代表团参与谈判
  • 获派驻6年后,中国驻厄瓜多尔大使陈国友即将离任
  • 中国证券业协会修订发布《证券纠纷调解规则》