【Linux专栏】ls 排除某个文件
Oracle && OceanBase 相关文档,希望互相学习,共同进步
风123456789~-CSDN博客
1.背景
需求:ls 查看某个文件夹的内容,排除某个文件 ,打印到某个文件中。
2. 实验![]()
2.1 ls 排除某个文件
列出当前目录下所有文件,但不包括名为
feng.txt的文件,命令如下:ls | grep -v feng.txt说明:
grep -v用于反向选择,即选择不匹配给定模式的行,如上 不含feng.txt
2.2ls和grep排除多个文件
排除多个文件,如:同时排除 feng.txt和anotherfile.txt
ls | grep -v -e feng.txt -e anotherfile.txt
2.3 ls 通配符或正则表达式 排除
使用ls的通配符或正则表达式排除特定模式:
ls | grep -vE '\.log$'
说明:-E选项 允许使用扩展的正则表达式,\.log$匹配所有以.log结尾的文件名
3.综合命令解析
1)查看文件夹下的 txt 结尾的文件
ls -l *.txt
2)只把文件名输出 |awk '{print $9}'
知识点:
awk: 强大的文本处理工具默认以空格或制表符为分隔符将每一行分割成多个字段(列)
$9: 表示第 9 个字段。在标准的ls -l输出中,前 8 个字段通常是:权限、硬链接数、所有者、所属组、文件大小、月份、日期、时间(或年份),第9个字段是文件名。
print $9: 打印每行的第 9 个字段
ls -l *.txt | awk '{print $9}'以上命令,输出当前文件夹中的 .txt 的文件,并打印每行的第9个字段(文件名称),结果:
3)排除某个文件
ls -l *.txt|grep -v file-common-1.0.0.jar.txt | awk '{print $9}'以上命令,排查了 file-common-1.0.0.jar.txt
3)print $9 潜在风险
虽然该命令在许多情况下能正常工作,但它存在不稳定性,主要原因如下:
时间格式差异导致列偏移:
ls -l的输出格式取决于文件修改时间距今的远近。
- 如果文件是今年修改的,时间列显示为
HH:MM(如Jun 12 10:52),此时文件名确实是第 9 列。- 如果文件是去年或更早修改的,时间列显示为
YYYY(如Jun 12 2025),会多占用一列,导致文件名变为第 10 列。- 后果:使用
{print $9}会导致旧文件的名字截取错误(可能只截取了年份部分),或者新文件的名字截取正确,造成结果不一致。文件名包含空格:
如果文件名中包含空格(如my file.txt),awk默认以空格分隔,会将文件名拆分成多个字段,$9只能获取文件名的第一部分。
4)优化写法 ls -1 *.txt
ls -1 *.txt
ls -1 *.txt作用是以每行一个文件的格式,列出当前目录下所有扩展名为.txt的文件名
ls: Linux 中列出目录内容的命令。-
-1 (数字 1): 强制输出格式为每行只显示一个文件。
- 注意:当
ls的输出指向终端(terminal)时,如果文件较多,默认可能会多列显示;如果输出被重定向到文件或管道,默认通常就是每行一个。使用-1可以确保无论在哪种环境下,输出都是严格的单列格式。-
*.txt: 通配符模式,匹配当前目录下所有以.txt结尾的文件。
截图:
5)优化写法 find . -maxdepth 1 -name "*.txt" -printf "%f\n"
find . -maxdepth 1 -name "*.txt" -printf "%f\n" 或 find -name "*.txt" -printf "%f\n"
find命令不受时间格式或文件名空格的影响:
-maxdepth 1:仅在当前目录查找,不递归子目录。-printf "%f\n":仅打印文件名(不含路径)。
6)打印输出到文件中
#列表名单 NH_JAR="/home/nh_xx.txt" ls -1 *.txt | grep -v file-common-1.0.0.jar.txt > ${NH_JAR}缩减命令:
ls -1 *.txt | grep -v file-common-1.0.0.jar.txt > /home/sxnhtc/mcro/backups_log/nh_jar.txt实验验证:ok![]()
项目管理--相关知识
项目管理-项目绩效域1/2-CSDN博客
项目管理-项目绩效域1/2_八大绩效域和十大管理有什么联系-CSDN博客
项目管理-项目绩效域2/2_绩效域 团不策划-CSDN博客
高项-案例分析万能答案(作业分享)-CSDN博客
项目管理-计算题公式【复习】_项目管理进度计算题公式:乐观-CSDN博客
项目管理-配置管理与变更-CSDN博客
项目管理-项目管理科学基础-CSDN博客
项目管理-高级项目管理-CSDN博客
项目管理-相关知识(组织通用治理、组织通用管理、法律法规与标准规范)-CSDN博客
Oracle其他文档,希望互相学习,共同进步
Oracle-找回误删的表数据(LogMiner 挖掘日志)_oracle日志挖掘恢复数据-CSDN博客
oracle 跟踪文件--审计日志_oracle审计日志-CSDN博客
ORA-12899报错,遇到数据表某字段长度奇怪现象:“Oracle字符型,长度50”但length查却没有50_varchar(50) oracle 超出截断-CSDN博客
EXP-00091: Exporting questionable statistics.解决方案-CSDN博客
Oracle 更换监听端口-CSDN博客
