【Linux基础】文件查找和文本处理指令

目录

grep命令

find命令

tar命令

head命令

tail命令

wc命令

tee命令


grep命令

作用:在文件中搜索匹配特定模式的文本行,并将结果输出到标准输出(通常是终端)。

基本用法

grep [选项] 搜索模式 [文件名]

常用选项

  • -i:忽略大小写,进行不区分大小写的搜索。
  • -v:反向搜索,输出不匹配搜索模式的行。
  • -n:在输出中显示匹配行的行号。
  • -c:统计匹配行的数量,而不是输出匹配的行。
  • -l:只列出包含匹配行的文件名,而不是输出匹配的行。
  • -r-R:递归搜索目录中的所有文件。
  • -w:仅匹配整词,避免部分匹配。
  • -e:指定多个搜索模式,可以多次使用 -e 来指定多个模式。
  • -o:仅输出匹配的部分,而不是整行。

例子:

#搜索目录example中文件包含 "error" 或 "warning" 的行
grep -e "error" -e "warning"  -r example/

#搜索error所在的文件
grep -lr "error" example

find命令

作用:在目录树中查找文件和目录。

基本用法

find [路径] [选项] [表达式]
  • 路径:指定查找的起始目录,默认为当前目录 (.)。
  • 选项:控制find的行为。
  • 表达式:定义查找条件。

常用选项

1.按名称查找

  • -name:按文件名查找(区分大小写)。
  • -iname:按文件名查找(不区分大小写)。
find /path/to/search -name "filename"

2.按类型查找

  • -type f:查找文件。
  • -type d:查找目录。
find /path/to/search -type f

3.按大小查找

  • -size +100M:查找大于 100MB 的文件。
  • -size -100M:查找小于 100MB 的文件。
find /path/to/search -size +100M

4.按时间查找

  • -mtime -7:查找过去 7 天内修改的文件。
  • -mtime +7:查找 7 天前修改的文件。
  • -atime:按访问时间查找。
  • -ctime:按状态变更时间查找。
find /path/to/search -mtime -7

5.执行操作

  • -exec:对查找到的文件执行命令,{}代表当前文件,\;表示命令结束。
find /path/to/search -name "*.log" -exec rm {} \;

6.组合条件

  • -and:逻辑与(默认)。
  • -or:逻辑或。
  • -not:逻辑非。
find /path/to/search -name "*.txt" -and -size +1M

最常用的起始也就前面两种用法。

tar命令

作用:用于文件打包和压缩。

基本用法

tar [选项] [输出文件] [输入文件或目录]
  • 选项:控制tar的行为(如创建、提取、压缩等)。
  • 输出文件:生成的归档文件名(如.tar、.tar.gz等)。
  • 输入文件或目录:需要打包的文件或目录。

常用参数选项

  • -c --create:创建新的归档文件,即打包,打包的意思就是说把一堆文件打包成一个文件。
  • -x --extract:解压文件。
  • -v --verbose:可视化,显示详细的tar处理的文件信息的过程。
  • -f --file:要操作的文件名。
  • -z:通过gzip来进行压缩或解压缩(.tar.gz或.tgz)。
  • -j:通过bzip2来归档压缩文件(.tar.bz2)。
  • -J:使用xz压缩工具压缩成.xz文件(.tar.xz)。
  • -t --list:列出归档文件中的内容。
  • -r:向归档文件中追加文件。
  • -C --directory=DIR:解压文件至指定的目录,如果是解压到当前目录,可以不加-C。

例子

#解压到指定目录
tar -xzvf archive.tar.gz -C /path/to/directory

#查看文件中的内容
tar -tzvf archive.tar.gz

#追加文件
tar -rvf archive.tar newfile

#打包并压缩
tar -czvf archive.tar.gz file1 file2 dir1

#解压
tar -xzvf archive.tar.gz

常用压缩格式对比

格式

命令选项

压缩率

速度

文件扩展名

gzip

-z

中等

较快

.tar.gz

bzip2

-j

较高

较慢

.tar.bz2

xz

-J

最高

最慢

.tar.xz

head命令

作用:显示文件的开头部分(默认显示前 10 行)。它通常用于快速查看文件的内容,而不需要加载整个文件。

基本用法

head [选项] [文件]

常用选项

选项

说明

-n <行数>

显示文件的前 <行数>行(例如 -n 20)。

-c <字节数>

显示文件的前 <字节数>字节。

-q

不显示文件名(静默模式)。

-v

总是显示文件名(默认行为)。

例子

#显示前十行
head filename.txt

#显示前N行
head -n N filename.txt

#显示前N个字节
head -c N filename.txt

#显示多个文件的前N行,并在每个文件内容前显示文件名。
head -n N file1.txt file2.txt

#静默模式(不显示文件名)
head -q -n N file1.txt file2.txt

#从标准输入读取数据 通过管道将cat的输出传递给head,显示前10行。
cat filename.txt | head -n 10

tail命令

作用:用于显示文件的末尾部分(默认显示最后 10 行)。它通常用于查看日志文件或实时监控文件内容的变化。

基本用法

tail [选项] [文件]

常用选项

选项

说明

-n <行数>

显示文件的最后 <行数>行(例如 -n 20)。

-c <字节数>

显示文件的最后 <字节数>字节。

-f

实时跟踪文件内容的变化(常用于日志监控)。

-q

不显示文件名(静默模式)。

-v

总是显示文件名(默认行为)。

例子

#显示文件的最后十行
tail filename.txt

#实时显示文件内容的变化
tail -f /var/log/syslog

wc命令

作用:主要用于统计文件的行数、单词数和字节数等信息。默认会同时统计行数、单词数和字节数。

基本用法

wc [选项] 文件名

常用选项

  • -c:统计文件的字节数。
  • -l:统计文件的行数。
  • -w:统计文件的单词数。
  • -m:统计文件的字符数(包括换行符等)。
  • -L:统计文件中最长行的长度。

tee命令

作用:将标准输入(stdin)的内容同时输出到标准输出(stdout)和一个或多个文件中。它的名字来源于管道(pipeline)中的“T”型分叉,表示数据流的分流。

基本用法

command | tee [选项] 文件名

常用选项

  • -a:追加模式(append)。如果不使用-a选项,tee默认会覆盖文件内容。
  • -i:忽略中断信号(ignore interrupt signals)。即使接收到中断信号(如 Ctrl+C),tee也会继续运行。

例子

#一个命令 ls -l,我们希望将它的输出保存到文件 output.txt 中,同时在终端上显示
ls -l | tee output.txt

#如果希望将输出追加到文件中,而不是覆盖文件
ls -l | tee -a output.txt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Nebula嵌入式

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值