在运维工作中,如何利用2种方式,查找3级目录的文件,最后一行第一个字母?

news/2025/3/13 9:54:52/文章来源:https://www.cnblogs.com/huangjiabobk/p/18769342

在运维工作中,如果需要查找三级目录中的文件,并提取每个文件最后一行的第一个字母,可以使用以下两种方法:find命令结合tailcut,以及find命令结合awk。这两种方法都能高效地完成任务,具体选择取决于个人偏好和实际需求。

1. 使用find命令结合tailcut
1.1 分两步
  1. 使用find命令查找三级目录中的文件。
  2. 对每个文件,使用tail获取最后一行,再用cut提取第一个字母。
1.2 脚本示例
#!/bin/bash# 定义目标目录(当前目录)
target_dir="."# 使用find查找三级目录中的文件
find "$target_dir" -mindepth 3 -type f | while read -r file; do# 检查文件是否至少有一行if [ $(wc -l < "$file") -ge 1 ]; then# 获取最后一行的第一个字母last_char=$(tail -n 1 "$file" | cut -c1)echo "文件: $file, 最后一行的第一个字母: $last_char"elseecho "文件 $file 为空,跳过处理。"fi
done
1.3 示例说明
  1. find命令

    find "$target_dir" -mindepth 3 -type f
    
    • -mindepth 3:确保只查找三级目录中的文件。
    • -type f:确保只查找文件,而不是目录。
  2. tail命令

    tail -n 1 "$file"
    
    • 获取文件的最后一行。
  3. cut命令

    cut -c1
    
    • 提取最后一行的第一个字符。
2. 使用find命令结合awk
2.1 分两步
  1. 使用find命令查找三级目录中的文件。
  2. 对每个文件,使用awk获取最后一行的第一个字母。
2.2 脚本示例
#!/bin/bash# 定义目标目录(当前目录)
target_dir="."# 使用find查找三级目录中的文件
find "$target_dir" -mindepth 3 -type f | while read -r file; do# 检查文件是否至少有一行if [ $(wc -l < "$file") -ge 1 ]; then# 使用awk获取最后一行的第一个字母last_char=$(awk 'END {print substr($0, 1, 1)}' "$file")echo "文件: $file, 最后一行的第一个字母: $last_char"elseecho "文件 $file 为空,跳过处理。"fi
done
2.3 示例说明
  1. find命令
    与方法一相同,用于查找三级目录中的文件。

  2. awk命令

    awk 'END {print substr($0, 1, 1)}' "$file"
    
    • END:在处理完所有行后执行。
    • substr($0, 1, 1):提取当前行的第一个字符。
3. 两种方法的对比
  1. tailcut方法

    • 优点:简单直观,适合快速提取最后一行的第一个字符。
    • 缺点:需要多次调用命令(tailcut),效率略低。
  2. awk方法

    • 优点:单个命令完成任务,效率更高,代码更简洁。
    • 缺点:需要对awk语法有一定了解。
4. 运行脚本
  1. 将脚本保存为extract_last_char.sh

  2. 确保脚本具有可执行权限:

    chmod +x extract_last_char.sh
    
  3. 运行脚本:

    ./extract_last_char.sh
    
5. 输出示例

假设目录中有以下文件内容:

# file1.txt
hello
world
# file2.txt
abc
def
ghi

脚本输出:

文件: ./dir1/dir2/file1.txt, 最后一行的第一个字母: w
文件: ./dir1/dir2/file2.txt, 最后一行的第一个字母: g
6. 我的总结

综上所述,通过上述两种方法,可以快速查找三级目录中的文件,并提取每个文件最后一行的第一个字母。tailcut方法适合简单的场景,而awk方法则更加高效和灵活。根据实际需求选择合适的方法即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/898041.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法心得(3)**差分**

**思路** 差分可以简单的看成**序列中每个元素与其前一个元素的差**一般认为它相当于前缀和的 逆运算 一般在情况满足两个条件时就使用它:(1)影响可以累加(2)有多个影响差分序列的作用:快速一个序列中某个区间内的所有值同时加上或减去一个常数 拿给一维数组A来说:…

NocoBase v1.6.0 正式版发布

集群模式部署、安全策略优化 和 迁移管理,性能、安全性和用户体验的全面提升原文链接:https://www.nocobase.com/cn/blog/nocobase-1-6-0 新特性 集群模式 企业版可通过相关插件支持集群模式部署,应用以集群模式运行时,可以通过多个实例和使用多核模式来提高应用的对并发访…

TypeScript 为什么使用 Go 而不是 Rust 重写 ?官方回应来了

TypeScript官推最近宣布他们正在移植到 Go,速度已经提高了 10 倍之多。 作为以性能为代表的另一语言Rust,人们自然会疑惑为什么没有选Rust语言重构呢?为方便大家快速理解,我用DeepSeek用小红书的语气重新总结了下:(原文放在下方,大家可以继续往下阅读)✨【技术选型大实…

什么情况,今年面试都不问八股文了??准备了几个月,结果一个都不问。。

大家好,我是R哥。 你还在死背八股文? 有好几个兄弟和我说,说背了几个月的八股文,结果面试官一个都不问,全问项目,结果面试被暴击了。 比如这位准备报名我的面试辅导的兄弟:还有这位报了我面试辅导的兄弟也是,全程项目拷打,都没问八股文:什么情况,现在面试都不问八股…

Hyper V用法实践:虚拟机备份与恢复技巧

在使用Hyper-V管理虚拟机时,掌握虚拟机备份与恢复技巧至关重要,这有助于确保业务连续性和数据安全。以下是一些实践中的虚拟机备份与恢复技巧:一、备份技巧 使用Hyper-V管理器导出虚拟机 打开Hyper-V管理器,选择要备份的虚拟机。 右键点击虚拟机,选择“导出”。 在导出窗口…

CorelDRAW Graphics Suite 2025 v26.0 (macOS, Windows) - 矢量图形设计软件

CorelDRAW Graphics Suite 2025 v26.0 (macOS, Windows) - 矢量图形设计软件CorelDRAW Graphics Suite 2025 v26.0 (macOS, Windows) - 矢量图形设计软件 vector illustration, layout, photo editing, and typography 请访问原文链接:https://sysin.org/blog/coreldraw/ 查看…

如何告别供应商图纸外发泄密风险,开启安全传输通道?

在当今竞争激烈的商业环境中,供应商图纸外发已成为企业合作与生产过程中不可或缺的环节。然而,这一环节却隐藏着诸多安全风险,一旦忽视,可能会给企业带来毁灭性的打击。图纸作为企业核心技术和商业秘密的重要载体,包含着产品的设计理念、技术参数、工艺流程等关键信息。这…

20242942 2024-202-2 《网络攻防实践》第二次作业

一、实验内容 1.网络踩点 攻击者通过公开或半公开的渠道收集目标网络的基本信息。这一阶段的目标是尽可能多地了解目标网络的结构、范围和潜在漏洞,而不会直接与目标系统交互。目的是确定目标网络的IP地址范围;了解目标网络的域名和子域名以及获取目标组织的网络拓扑结构。  …

【一文解读】研发网与办公网跨网文件传输难题如何破解?

一、研发网与办公网跨网文件传输的挑战与需求 在现代企业中,研发网与办公网的分离设计是为了保障信息安全、控制网络访问、提高数据的保密性等方面的考虑。研发网(通常用于技术开发、测试、实验等敏感工作)与办公网(用于日常办公和互联网访问)在企业内部通常是两个相对独立…

H德菲尔monyOS Next 入门实战 - 文字转拼音,文字转语音

pinyin4js 提供了以下接口:● 文字转拼音(带声调和不带声调)● 文字转拼音首字母● 简体繁体互转 let rawText = "风急天高猿萧哀,渚清沙白鸟飞回;" let pinyin1: string =pinyin4js.convertToPinyinString(rawText, " ", pinyin4js.WITH_TONE_MARK) …

吐血整理!2025 最好用 AI 工具全汇总,别再瞎找了!

在当下这个 AI 蓬勃发展的时代,各类 AI 工具如雨后春笋般涌现,让人眼花缭乱。无论是职场人士想要提升工作效率,还是创作者渴望激发灵感、优化内容,亦或是学生期望找到学习的得力助手,都在苦苦寻觅真正好用、实用的 AI 工具。 AI工具太多,是好事也是坏事,特别是当面临选择…

公司明令禁止使用Xshell。因此,我花了一些时间,

今天这篇文章轻松不烧脑,主要是想和大家分享一下我在工作中常用的远程管理工具——MobaXterm。这款工具不仅功能强大,而且在日常的远程操作中极为高效,特别适合用来管理远程服务器。MobaXterm结合了多种网络工具,支持SSH、X11、RDP等协议,能够通过图形界面连接不同的远程系…