CentOS 7 实战指南:文本处理命令详解

前言

在Linux系统中,文本处理是非常基础却又必不可少的一项技能。如果你正在使用CentOS系统,那么学会如何利用文本操作命令来高效地处理文本文件无疑将会是一个强有力的工具。

本篇文章将介绍一些最常用和最实用的文本操作命令,并通过详尽的示例演示了它们的具体用法。学习到这些技能后,你将能够轻松完成对大量文本数据的快速处理、搜索和编辑。

如果你是一名Linux新手或者对文本处理命令不熟悉的用户,这篇文章绝对是必读的!

文本处理命令

cat

在 CentOS 7 系统中,cat 命令的语法、可选参数和使用示例如下:

语法:

bash 复制代码
cat [OPTION] [FILE]

可选参数:

  • -n, --number 行号
  • -b, --number-nonblank 显示非空白行的行号
  • -s, --squeeze-blank 将连续多个空白行压缩为一个空白行
  • -v, --show-nonprinting 显示非打印字符
  • -e 在每行末尾显示 $ 符号
  • -T 将制表符(Tab)转换为 ^I
  • -A 相当于 -vET 三个参数同时使用

使用示例:

  • 查看文件内容:
bash 复制代码
# 显示文件 file.txt 的内容 cat file1.txt file2.txt # 将文件 file1.txt 和 file2.txt 的内容依次显示在命令行中
cat file.txt 
  • 显示行号:
bash 复制代码
cat -n file.txt    # 显示文件 file.txt 的每一行行号
cat -b file.txt    # 显示文件 file.txt 中非空白行的行号
  • 压缩空白行:
bash 复制代码
cat -s file.txt    # 将文件 file.txt 的连续多个空白行压缩为一个空白行
  • 显示非打印字符:
bash 复制代码
cat -v file.txt # 显示文件 file.txt 中的非打印字符,如制表符、回车符等
  • 将制表符转换为 ^I:
bash 复制代码
cat -T file.txt # 将文件 file.txt 中的制表符(Tab)转换为 ^I
  • 在每行末尾显示 $ 符号:
bash 复制代码
cat -e file.txt # 在文件 file.txt 的每一行末尾显示 $ 符号
  • 组合使用:
bash 复制代码
cat -n -s file.txt    # 显示文件 file.txt 的每一行行号,并将连续多个空白行压缩为一个空白行
cat -vET file.txt     # 显示文件 file.txt 的内容,并将非打印字符、制表符和行尾符号可视化

在 CentOS 7 系统中,head 命令用于显示文件的开头部分。以下是 head 命令的语法、可选参数和使用示例:

语法:

bash 复制代码
head [OPTION] [FILE]

可选参数:

  • -n NUM, --lines=NUM 显示文件的前 NUM 行
  • -c NUM, --bytes=NUM 显示文件的前 NUM 个字节
  • -q, --quiet 不显示文件名
  • -v, --verbose 显示文件名

使用示例:

  • 显示文件的前几行:
bash 复制代码
head file.txt                 # 显示文件 file.txt 的前 10 行(默认为 10)
head -n 5 file.txt            # 显示文件 file.txt 的前 5 行
head -n 15 file.txt file2.txt   # 显示文件 file1.txt 和 file2.txt 的前 15 行
  • 显示文件的前几个字节:
bash 复制代码
head -c 100 file.txt          # 显示文件 file.txt 的前 100 个字节
head -c 1K file.txt           # 显示文件 file.txt 的前 1KB(1024 字节)
head -c 1M file.txt           # 显示文件 file.txt 的前 1MB(1048576 字节)
  • 静默模式,不显示文件名:
bash 复制代码
head -q file.txt # 只显示文件内容,不显示文件名
  • 显示文件名:
bash 复制代码
head -v file.txt # 显示文件名和文件内容

注意:如果不指定文件名,则 head 命令将从标准输入读取数据。可以使用管道符号将其他命令的输出作为 head 命令的输入。

示例:

bash 复制代码
ls -l | head -n 10            # 列出当前目录下所有文件的详细信息,并显示前 10 行
tail -f /opt/dir/file.txt | head -n 20    # 实时显示系统日志文件的最新内容,并显示前 20 行

tail

在 CentOS 7 系统中,tail 命令用于显示文件的末尾部分。以下是 tail 命令的语法、可选参数和使用示例:

语法:

bash 复制代码
tail [OPTION] [FILE]

可选参数:

  • -n NUM, --lines=NUM 显示文件的后 NUM 行
  • -c NUM, --bytes=NUM 显示文件的后 NUM 个字节
  • -f, --follow 动态显示文件的新增内容
  • -q, --quiet 不显示文件名
  • -v, --verbose 显示文件名

使用示例:

  • 显示文件的后几行:
bash 复制代码
tail file.txt                 # 显示文件 file.txt 的后 10 行(默认为 10)
tail -n 5 file.txt            # 显示文件 file.txt 的后 5 行
tail -n +5 file.txt           # 从第 5 行开始显示文件 file.txt 的内容
tail -n 15 file1.txt file2.txt   # 显示文件 file1.txt 和 file2.txt 的后 15 行
  • 显示文件的后几个字节:
bash 复制代码
tail -c 100 file.txt          # 显示文件 file.txt 的后 100 个字节
tail -c 1K file.txt           # 显示文件 file.txt 的后 1KB(1024 字节)
tail -c 1M file.txt           # 显示文件 file.txt 的后 1MB(1048576 字节)
  • 动态显示文件的新增内容:
bash 复制代码
tail -f file.txt              # 动态显示文件 file.txt 的末尾内容,并持续更新
  • 静默模式,不显示文件名:
bash 复制代码
tail -q file.txt # 只显示文件内容,不显示文件名
  • 显示文件名:
bash 复制代码
tail -v file.txt # 显示文件名和文件内容

注意:如果不指定文件名,则 tail 命令将从标准输入读取数据。可以使用管道符号将其他命令的输出作为 tail 命令的输入。

示例:

bash 复制代码
ls -l | tail -n 10            # 列出当前目录下所有文件的详细信息,并显示最后 10 行
tail -f /var/log/syslog       # 实时显示系统日志文件的新增内容

grep

在 CentOS 7 系统中,grep 命令用于在文件中搜索指定模式的文本行。以下是 grep 命令的语法、可选参数和使用示例:

语法:

bash 复制代码
grep [OPTIONS] PATTERN [FILE]

可选参数:

  • -c, --count 只显示匹配的行数
  • -i, --ignore-case 忽略大小写
  • -v, --invert-match 反转匹配结果,只显示不匹配的行
  • -n, --line-number 显示匹配行的行号
  • -r, --recursive 递归搜索子目录中的文件
  • -l, --files-with-matches 只显示包含匹配内容的文件名

使用示例:

  • 在单个文件中搜索模式:
bash 复制代码
grep "hello" file.txt          # 在文件 file.txt 中搜索匹配 "hello" 的行
grep -i "hello" file.txt        # 在文件 file.txt 中忽略大小写搜索匹配 "hello" 的行
grep -n "hello" file.txt        # 在文件 file.txt 中搜索匹配 "hello" 的行,并显示行号
  • 在多个文件中搜索模式:
bash 复制代码
grep "hello" file.txt file2.txt    # 在文件 file.txt 和 file2.txt 中搜索匹配 "hello" 的行
grep -r "hello" dir/           # 在指定目录下递归搜索匹配 "hello" 的文件内容
  • 显示匹配行的行数和文件名:
bash 复制代码
grep -c "hello" file.txt          # 统计文件 file.txt 中匹配 "hello" 的行数
grep -l "hello" file.txt file2.txt  # 显示包含匹配 "hello" 内容的文件名
  • 反转匹配结果,只显示不匹配的行:
bash 复制代码
grep -v "hello" file.txt         # 显示文件 file.txt 中不匹配 "hello" 的行

这些示例将帮助您更好地理解 grep 命令在 CentOS 7 系统中的使用。可以根据需要组合使用不同的选项来实现更复杂的搜索操作

wc

在 CentOS 7 系统中,wc 命令用于计算文件中的行数、字数和字符数。以下是 wc 命令的语法、可选参数和使用示例:

语法:

bash 复制代码
wc [OPTIONS] FILE

可选参数:

  • -c, --bytes 打印文件的字节数
  • -m, --chars 打印文件的字符数
  • -l, --lines 打印文件的行数
  • -w, --words 打印文件的词数

使用示例:

  • 统计文件的行数、字数和字符数:
bash 复制代码
wc file.txt # 统计文件 file.txt 的行数、字数和字符数
  • 只统计字节数、字符数或行数:
bash 复制代码
wc -c file.txt        # 统计文件 file.txt 的字节数
wc -m file.txt        # 统计文件 file.txt 的字符数
wc -l file.txt        # 统计文件 file.txt 的行数
  • 统计多个文件的总行数、字数和字符数:
bash 复制代码
wc file.txt file2.txt          # 统计文件 file.txt 和 file2.txt 的总行数、字数和字符数
  • 显示文件名以及统计结果:
bash 复制代码
wc -l file.txt file2.txt # 显示文件名以及各文件的行数统计结果
  • 结合管道操作:
bash 复制代码
ls | wc -l                      # 统计当前目录下文件的数量
ls | wc -w                      # 统计当前目录下文件名中单词的数量

vi/vim

打开文件:使用 vi 或 vim 命令加上文件名来打开一个文件。例如:

bash 复制代码
vi filename

进入插入模式:在命令模式下按下 i 可以进入插入模式。在插入模式下,光标会变成竖线形状,可以输入文本到文件中。

保存文件:在命令模式下按下 :w 可以保存文件。如果文件是新建的,需要在文件名后添加 ! 才能保存。

bash 复制代码
:w 
:w!

退出编辑器:在命令模式下按下 :q 可以退出编辑器。如果文件已被修改但未保存,则无法退出编辑器。如果强制退出编辑器,可以在 q 后添加 ! 。

bash 复制代码
:q
:q!

保存并退出编辑器:在命令模式下按下 :wq 可以保存并退出编辑器。如果文件是新建的,需要在文件名后添加 ! 才能保存。

bash 复制代码
:wq
:wq!

撤销上一步操作:在命令模式下按下 u 可以撤销上一步操作。

复制粘贴:在命令模式下移动光标到要复制的位置,按下 y 键复制,然后移动光标到要粘贴的位置,按下 p 键粘贴。如果需要复制多行,可以在命令模式下先按下 v 进入可视模式,然后移动光标选择要复制的行,再按下 y 复制。

写在最后

如果你觉得这篇关于使用文本操作命令在CentOS系统中高效处理文本文件的技术文章对你有所启发,那就请点个赞吧!你的支持是我不断前进和创作更好内容的动力。

同时,为了方便以后查阅和学习,别忘了点击收藏按钮,将这篇文章保存起来。这样你就可以随时回顾这些实用的文本操作命令,并在日常工作中应用它们。

感谢你抽出时间阅读这篇文章,并且希望这些技巧能够对你的工作和生活带来帮助。

相关推荐
7yewh7 分钟前
嵌入式硬件实战提升篇(一)-泰山派RK3566制作多功能小手机
linux·arm开发·驱动开发·嵌入式硬件·物联网·智能手机·硬件架构
YRr YRr33 分钟前
ubuntu ros 解决建完图后 保存的地图非常小的问题
linux·运维·ubuntu
脸ル粉嘟嘟1 小时前
常用命令之Linux&Oracle&Hive&Python
linux·hive·oracle
Wils0nEdwards1 小时前
Leetcode 整数转罗马数字
linux·python·leetcode
石牌桥网管2 小时前
DNS Resolver解析服务器出口IP查询
运维·网络·tcp/ip·dns
LKAI.2 小时前
华为路由策略配置
运维·网络·华为·智能路由器
IpdataCloud2 小时前
IP数据云 识别和分析tor、proxy等各类型代理
运维·服务器
五味香2 小时前
Linux学习,ip 命令
linux·服务器·c语言·开发语言·git·学习·tcp/ip
想学习java初学者2 小时前
Docker compose部署elasticsearch(单机版)
运维·docker·容器
人类群星闪耀时3 小时前
未来运维的发展趋势:运维领域的新技术与趋势
运维