Linux 文件内容的查询与统计

文件内容的查阅与统计

文件内容的查询

cat 指令

concatenate,连接文件并打印到标准输出设备上(查看文件)。

  • 用法1: cat 文件路径
    • 常用选项: -n 列出行号
  • 用法2: tac
    • 倒序显示(应用:查看日志)

head 指令

查看一个文件的前n行,默认显示前10行。

  • 用法:
    • head -数字 文件路径 【n表示数字】(简略写法)
    • head -n 数字 文件路径(标准写法)

n为负数时,负的行数不显示

tail 指令

查看一个文件的末n行,默认显示后10行

  • 用法1:
    • tail -数字 文件路径 【n表示数字】(简略写法)
    • tail -n 数字 文件路径(标准写法)
  • 用法2:tail -f 文件路径
    • 持续检测文件内容,一般用于查看系统日志

less 指令

查看文件,支持翻页

  • 用法:less 文件路径
    • 操作指令:
      • 空格键:向下翻动一页
      • pagedown\]:向下翻动一页

      • j:下一行
      • k:上一行
      • G:移动到最后一页
      • g:移动到第一行
      • /字符串:向下搜索字符串
      • ?字符串:向上搜索字符串
      • q:退出 less

less /etc/passwd

统计与查找

wc 指令

Word Count 统计文件内容信息(行数,单词数,字节数)

  • 用法:wc -lwc需要统计的文件路径
  • 选项解释:
  • #-l:表示lines,行数
  • #-w:表示word,单词数 依照空格来判断单词数量
  • #-c:表示 bytes,字节数

find 指令

查找文件(其参数很多)

  • 用法:find 路径范围 选项 选项的值
    • 常用选项:
      • type:按文件类型搜索(普通文件类型:f)
      • name:按文件名搜索
      • maxdepth:指定搜索深度
      • size:按文件大小

find ./ -type l

find ./ -name "day*"

find ./ -maxdepth 1 -name "m"

find ./ -size +20M -size -50M

输出重定向

一般命令会输出到终端中,有些则需要将命令结果保存到文件进行后续的分析或统计,这时需要使用到重定向技术

  • 输出重定向符号:

    • #>:覆盖输出,会覆盖原文件内容
    • #>>:追加输出,不会覆盖原文件内容,在末尾继续添加
  • 用法:指令> / >> 文件路径

    • 指令结果保存到指定文件中。若文件不存在则新建该文件
  • 追加重定向: ls >> d5.txt

    • 将当前目录的文件列表追加到d5.txt文件中(如果不存在该文件,会新建一个)。
  • 覆盖重定向: ls > d5.txt

    • 将ls结果(当前目录的文件列表)覆盖写入d5.txt,即之前文件中的内容会被清空,并用新输出替换。
  • 合并文件:cat 待合并的文件路径 1 待合并的文件路径 2...... 文件路径 n > 合并之后的文件路径

管道(重要)

管道符:|

管道一般可以用于"过滤","特殊","扩展管理"。管道不能单独使用,必须配合指令来一起使用,主要是辅助作用

  • 用法:指令1 | 指令2
    • 以管道符作为分界线,指令1的输出是指令2的输入
    • 作用:实现"数据流"传递,让多个命令联合处理数据,而不需要中间保存到临时文件
bash 复制代码
ls -l | grep "txt"
  • 列出当前目录的详细文件清单,然后把输出传给grep "txt",筛选出文件名包含"txt"的行
  • grep指令:主要用于过滤
  • 可以翻页的方式进行查看 /etc/ 下的文件:
bash 复制代码
ls /etc | less
复制代码
+ ls /etc:列出/etc/目录中的所有文件和子目录。
+ |:管道,将ls的输出传递给后面的命令。
+ less:分页查看ls输出的结果,可以上下翻页浏览大目录。
  • 统计根目录下的文件个数:
bash 复制代码
ls / | wc -l
  • ls /:列出根目录 / 中的所有文件和文件夹(只列出文件名,不包含详细信息)。
  • |:管道,把ls /的输出传递给下一条命令。
  • wc -l:统计输入内容的行数,即文件或子目录的个数。
相关推荐
差点GDP2 小时前
常用 Linux Shell 命令
linux
z202305084 小时前
Linux之vmlinux文件段布局和arm64 的链接脚本vmlinux.lds.S分析
linux·运维·服务器
百锦再4 小时前
第11章 泛型、trait与生命周期
android·网络·人工智能·python·golang·rust·go
濊繵5 小时前
Linux网络-Socket 编程 UDP
linux·网络·udp
会跑的兔子5 小时前
Android 16 Kotlin协程 第二部分
android·windows·kotlin
键来大师5 小时前
Android15 RK3588 修改默认不锁屏不休眠
android·java·framework·rk3588
hhhh明7 小时前
quest2+alvr+steamvr
linux·windows·quest2
dqsh068 小时前
树莓派5+Ubuntu24.04 LTS CH348 / CH9344 驱动安装 保姆级教程
linux·c语言·单片机·嵌入式硬件·iot
江上清风山间明月8 小时前
Android 系统超级实用的分析调试命令
android·内存·调试·dumpsys
William_cl8 小时前
C# ASP.NET MVC 数据验证实战:View 层双保险(Html.ValidationMessageFor + jQuery Validate)
后端·c#·asp.net·mvc