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

news2025/1/2 0:09:05

前言

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

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

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

文本处理命令

cat

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

语法:

cat [OPTION] [FILE]

可选参数:

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

使用示例:

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

head

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

语法:

head [OPTION] [FILE]

可选参数:

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

使用示例:

  • 显示文件的前几行:
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 行
  • 显示文件的前几个字节:
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 字节)
  • 静默模式,不显示文件名:
head -q file.txt # 只显示文件内容,不显示文件名
  • 显示文件名:
head -v file.txt # 显示文件名和文件内容

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

示例:

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

tail

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

语法:

tail [OPTION] [FILE]

可选参数:

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

使用示例:

  • 显示文件的后几行:
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 行
  • 显示文件的后几个字节:
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 字节)
  • 动态显示文件的新增内容:
tail -f file.txt              # 动态显示文件 file.txt 的末尾内容,并持续更新
  • 静默模式,不显示文件名:
tail -q file.txt # 只显示文件内容,不显示文件名
  • 显示文件名:
tail -v file.txt # 显示文件名和文件内容

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

示例:

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

grep

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

语法:

grep [OPTIONS] PATTERN [FILE]

可选参数:

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

使用示例:

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

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

wc

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

语法:

wc [OPTIONS] FILE

可选参数:

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

使用示例:

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

vi/vim

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

vi filename

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

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

:w 
:w!

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

:q
:q!

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

:wq
:wq!

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

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

写在最后

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何自动生成 API 接口文档 - 一份详细指南

本篇文章详细教你如何使用 Apifox 的 IDEA 插件实现自动生成接口代码。好处简单总结有以下几点: 自动生成接口文档: 不用手写,一键点击就可以自动生成文档,当有更新时,点击一下就可以自动同步接口文档;代码…

金和OA UserWebControl.UserSelect.ashx 信息泄露漏洞

产品简介 金和网络是专业信息化服务商,为城市监管部门提供了互联网监管解决方案,为企事业单位提供组织协同OA系统升开发平台,电子政务一体化平台智慧电商平合等服务 漏洞概述 金和OA UserWebControl.UserSelect.AjaxServiceMethod,UserWeb…

秋招复习之迭代与递归

目录 前言 递归 1. 调用栈 2. 尾递归 3. 递归树 总结 前言 复习中ing,递归我总是迷迷糊糊的,这里有点醍醐灌顶。迭代是自下而上,从最基础的步骤开始,然后不断重复或累加这些步骤,直到任务完成。递归是自上而下&…

共识算法介绍

文章目录 共识算法Paxos 算法三种角色一致性提交算法prepare 阶段accept 阶段commit 阶段 CAP 定理BASE 理论Zookeeper 算法实现三类角色三个数据三种模式四种状态消息广播算法Leader选举算法 共识算法 Paxos 算法 Paxos 算法是莱斯利兰伯特(Leslie Lamport)1990 年提出的一种…

精彩回顾 I DatenLord Hackathon 2023圆满结束!

DatenLord Hackathon 2023已经顺利完赛。达坦科技基于其跨云分布式文件系统DatenLord项目,结合AI大模型时代背景,搭建了擂台。我们邀请参赛者为DatenLord的极端场景设计并实现缓存 p2p 传输和同步模块。 本届赛题为“Explore the Possibilities”&#…

71.乐理基础-打拍子-三连音的变体

上一个内容:70.乐理基础-打拍子-三连音-CSDN博客 首先常见的三连音如下图的样子: 三连音的变体遇到的次数并不会很多,可以不用看不用懂 三连音的变体: 1.三连音节奏型依然有可能藏有休止符,如下图 2.在这之前的三连音…

Spring之 国际化:i18n

1、i18n概述 国际化也称作i18n,其来源是英文单词 internationalization的首末字符i和n,18为中间的字符数。由于软件发行可能面向多个国家,对于不同国家的用户,软件显示不同语言的过程就是国际化。通常来讲,软件中的国…

Ant Design Vue 编译后的网页特点是什么,怎么确认他是用的前端 Ant Design Vue 技术栈的呢?

Ant Design Vue 是一个前端 UI 框架,使用 Vue.js 构建。它包含了大量的预设样式和组件,如按钮、表单、表格等,可以帮助开发者快速构建出优雅且功能丰富的网页。但是,要确定一个编译后的网页是否使用了 Ant Design Vue,…

缓存和数据库,1+1如何大于2?

一、缓存的本质 缓存,简单说就是为了节约对原始资源重复获取的开销,而将结果数据副本存放起来以供获取的方式。 首先,缓存往往针对的是“资源”。我们前面已经多次提到过,当某一个操作是"幂等"的和“安全"的&#…

Cesium特效-2023年汇总

1-3dTiles建筑实现随机贴图 使用3dTiles的customShader接口,在前端实现不同白模建筑贴不同的图片 2-淡入淡出的扩散雷达效果 在扩散雷的基础上,实现渐隐渐现的效果 3-不规则多边形的扩散效果 指定一个中心点,改变每个多边形的顶点位置来实现动…

Vue - 多行文本“展开、收起”功能

TextClamp 使用 js 实现文本展开、收起,并非纯 CSS 实现。 Props: fontSize:Number,默认:14lines:Number,默认:1lineHeight:Number,默认:20 F…

在mac上怎么方便的编辑xml文件

在Mac上 XML 文件不能默认以较直观的方式在“文本编辑”中打开,如果已安装 Xcode,你可以使用 Xcode 打开 XML 文件。在 Xcode 中,XML 文件通常会以可视化的方式显示,使得编辑更加直观,但是如果你不想安装 XCode&#x…

stable diffusion 基础教程-必备插件

说明 持续更新 插件地址,因为这些都是要魔法上网的,大家直接从我百度云盘里获取 链接:https://pan.baidu.com/s/1_xAu47XMdDNlA86ufXqAuQ?pwd=23wi 提取码:23wi 交流群:830970289 必备插件 汉化包 中文汉化包 https://github.com/VinsonLaro/stable-diffusion-webui-chi…

RK3568驱动指南|第九篇 设备模型-第100章 在总线目录下创建属性文件实验

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工…

SSM共享汽车租赁平台----计算机毕业设计

项目介绍 本项目分为前后台,前台为普通用户登录,后台为管理员登录; 管理员角色包含以下功能: 管理员登录,修改管理员信息,用户信息管理,管理新闻公告,汽车品牌信息管理,城市信息管理,租赁点信息管理,共享汽车信息管理,汽车订单信…

openGauss学习笔记-185 openGauss 数据库运维-升级-提交升级/升级版本回退/异常处理

文章目录 openGauss学习笔记-185 openGauss 数据库运维-升级-提交升级/升级版本回退/异常处理185.1 提交升级操作步骤 185.2 升级版本回滚操作步骤 185.3 异常处理升级问题FAQ openGauss学习笔记-185 openGauss 数据库运维-升级-提交升级/升级版本回退/异常处理 185.1 提交升级…

[足式机器人]Part2 Dr. CAN学习笔记-自动控制原理Ch1-7Lead Compensator超前补偿器(调节根轨迹)

本文仅供学习使用 本文参考: B站:DR_CAN Dr. CAN学习笔记-自动控制原理Ch1-7Lead Compensator超前补偿器(调节根轨迹) 1. Plot Rootlocus 绘制根轨迹2. System Performance 系统表现3. 改善/加快收敛速度4. 超前补偿器 Lead Compe…

C++ DAY6 作业

1.用模板类写顺序表 #include <iostream>using namespace std;#define MAXSIZE 10 template <typename T> class Arr {T *data NULL;int len 0; public://构造函数Arr():data(new T){}Arr(T a,int len):data(new T(a)),len(len){}//析构函数~Arr(){delete data;}…

(一)CarPlay集成开发之概述与环境篇

系列文章目录 第一章 CarPlay集成开发之概述与环境篇 文章目录 系列文章目录概述开发环境依赖项总结 概述 CarPlay是由苹果公司开发的一款集成在iOS系统中&#xff0c;用于运行在已完成对接该系统的汽车中控台&#xff0c;仪表盘上的车载系统&#xff0c;该系统通过USB或者WI…

智能求职助手 - ChatGPT 与 RPA 技术的完美结合

随着全球互联网行业的快速发展&#xff0c;互联网求职市场也变得越来越竞争激烈。在互联网求职寒冬的背景下&#xff0c;一位热心的开发者创造了一个令人惊叹的开源项目&#xff0c;结合了 ChatGPT 和 RPA 技术&#xff0c;为求职者提供了一键自动投递简历的便捷解决方案。 项…