Skip to the content.

CentOS 9 实战(3):文件操作与文本处理

欢迎来到《CentOS 9 实战速查手册》专栏的第 3 篇文章。在这篇文章中,我们将重点介绍 CentOS 中的文件操作和文本处理,包括 touchechoteefindtailcatgrepawk 命令的使用。这些命令是日常管理和操作 Linux 系统中必不可少的工具,掌握它们可以大大提高工作效率。

1. touch 命令

1.1 基本使用

touch 命令用于创建空文件或更新文件的时间戳。

# 创建一个空文件
touch filename

# 同时创建多个文件
touch file1 file2 file3

1.2 更新文件时间戳

如果文件已存在,使用 touch 命令可以更新文件的访问和修改时间。

# 更新文件时间戳
touch filename

2. echo 命令

2.1 基本使用

echo 命令用于在终端输出文本或将文本写入文件。

# 输出文本
echo "Hello, World!"

# 将文本写入文件
echo "Hello, World!" > filename

2.2 附加文本到文件

使用 >> 符号将文本附加到文件末尾。

# 将文本附加到文件末尾
echo "Hello, again!" >> filename

3. tee 命令

3.1 基本使用

tee 命令用于将命令的输出重定向到文件,同时显示在终端。

# 将输出写入文件并显示在终端
echo "Hello, World!" | tee filename

3.2 附加模式

使用 -a 选项可以将输出附加到文件末尾,而不是覆盖文件。

# 将输出附加到文件末尾并显示在终端
echo "Hello, again!" | tee -a filename

4. find 命令

4.1 基本使用

find 命令用于在目录中搜索文件和目录。

# 在当前目录及其子目录中查找名为 filename 的文件
find . -name filename

# 在指定目录中查找名为 filename 的文件
find /path/to/directory -name filename

4.2 按类型查找

使用 -type 选项可以根据文件类型查找文件或目录。

# 查找目录
find . -type d -name dirname

# 查找文件
find . -type f -name filename

4.3 按时间查找

使用 -mtime 选项可以根据修改时间查找文件。

# 查找最近 7 天内修改的文件
find . -mtime -7

# 查找超过 7 天未修改的文件
find . -mtime +7

4.4 按大小查找

使用 -size 选项可以根据文件大小查找文件。

# 查找大于 10MB 的文件
find . -size +10M

# 查找小于 1KB 的文件
find . -size -1k

5. 管道命令(|)

5.1 基本使用

管道命令 | 用于将一个命令的输出作为下一个命令的输入。

# 将 ls 命令的输出通过管道传递给 grep 命令
ls -l | grep filename

5.2 与 grep 结合

grep 命令用于搜索文本,常与管道命令结合使用。

# 查找包含 "pattern" 的行
cat file.txt | grep "pattern"

# 查找当前目录中包含 "pattern" 的文件
grep "pattern" *

5.3 与 awk 结合

awk 命令用于文本处理,可以与管道命令结合使用进行复杂的数据处理。

# 打印包含 "pattern" 的行的第一个字段
cat file.txt | grep "pattern" | awk '{print $1}'

5.4 与 sort 结合

sort 命令用于排序,可以与管道命令结合使用。

# 对文件内容进行排序并显示
cat file.txt | sort

6. tail 命令

6.1 基本使用

tail 命令用于查看文件的尾部内容。

# 查看文件的最后 10 行
tail filename

# 查看文件的最后 n 行
tail -n 20 filename

6.2 实时查看文件更新

使用 -f 选项可以实时查看文件的更新内容,常用于监控日志文件。

# 实时查看日志文件的更新
tail -f /var/log/syslog

7. awk 命令

7.1 基本使用

awk 是一个强大的文本处理工具,适用于格式化文本输出、数据提取和报告生成。

# 打印文件中的所有行
awk '{print}' filename

# 打印文件中的第一列
awk '{print $1}' filename

7.2 条件判断

awk 支持条件判断,可以根据条件处理和过滤数据。

# 打印第二列值大于 100 的行
awk '$2 > 100 {print $0}' filename

7.3 格式化输出

awk 可以使用 printf 函数格式化输出。

# 格式化输出第一列和第二列
awk '{printf "Name: %s, Score: %d\n", $1, $2}' filename

7.4 内置变量

awk 提供了一些内置变量,如 NR 表示行号,NF 表示字段数。

# 打印行号和每行的内容
awk '{print NR, $0}' filename

# 打印每行的字段数
awk '{print NF}' filename

8. ls 命令查看文件大小

使用 ls 命令可以查看文件大小。添加 -l 选项可以显示文件的详细信息,包括大小。

# 查看当前目录下的文件大小
ls -lh

# 查看指定目录下的文件大小
ls -lh /path/to/directory

9. 实用案例

9.1 批量创建文件

使用 touch 命令批量创建多个文件。

# 创建 10 个文件
for i in {1..10}; do touch file$i.txt; done

9.2 搜索并处理文件

使用 find 命令搜索文件,并结合 xargs 命令进行处理。

# 查找并删除大于 100MB 的文件
find . -size +100M | xargs rm -f

9.3 监控日志文件

使用 tailgrep 命令监控日志文件中的特定内容。

# 实时监控日志文件中的错误信息
tail -f /var/log/syslog | grep "error"

9.4 文本处理与格式化

使用 awk 处理和格式化文本数据。

# 统计文件中每行的字段数
awk '{print NR, NF}' filename

# 打印分数大于 90 的学生姓名
awk '$2 > 90 {print $1}' scores.txt

10. 总结

在这篇扩展阅读文章中,我们介绍了 CentOS 中常用的文件操作和文本处理命令,包括 touchechoteefindtailcatgrepawkls 命令。通过掌握这些命令,你可以更高效地管理和操作文件,提高工作效率。在接下来的文章中,我们将继续探讨 CentOS 的用户和权限管理,敬请期待。