当前位置: 首页 > news >正文

Linux云计算基础篇(9)-文本处理工具和变量

1.文本提取工具

提取列或者字段:cut
P: cut会将内容输出到终端,默认不会对源文件进行修改
语法格式:
cut [选项] file

常用选项:

  • -d 指定分隔符 -d_f 指定要打印的列
  • -C 根据字符提取内容

cut使用案例

  1. 提取系统的所有用户名
    [root@localhost ~]# cut -d: -f1 /etc/passwd  
    #以:为分隔符,提取第一列  
    root  
    bin  
    

  2. 提取指定数量的字符
    [root@localhost ~]# cut -c1-2 /etc/passwd  
    # 提取/etc/passwd文件第1个到第2个字符  
    

2.文本分析工具-文本统计

统计单词数、行数、字节大小:wc
语法格式:
wc [选项] file

常用选项:

  • -w 统计文件的单词数
  • -C 统计文件的字符数
  • -l 统计文件的行数

使用wc命令的案例:

  1. 统计系统中所有的用户
    [root@localhost ~]# wc -l /etc/passwd  
    47 /etc/passwd  
    # /etc/passwd一行都是一个用户,共有47行说明有47个用户  
    

  2. 提取/etc/passwd文件第1个到第2个字符
    [root@localhost ~]# cut -c1-2 /etc/passwd  
    

3.文本分析工具-文本排序

对文本进行排序的工具:sort
(同时支持删除重复的行)
排序的结果输出到终端页面,对源文件不会修改

语法格式:
sort [选项] file

常用选项:

  • -r 降序
  • -n 根据数字进行排序
  • -f 忽略字符的大小写
  • -tc 以c为分隔符
  • -kx (和-c联合使用) 以c作为分隔符,根据第x列排序
  • -U 删除重复的行

4.文本分析工具-文本比较

文本比较工具:diff、vimdiff

  • diff命令: 在终端上显示文件之间的差异性
    [root@localhost opt]# diff /etc/passwd /opt/passwd  
    1d0  
    < root:x:0:0:root:/root:/bin/bash  
    

  • vimdiff命令: 在多窗口模式下比较文件

5.文本分析工具-文本转换

文本转换工具:tr
可以将大小写字母互相转换,也可以将字母和数字互相转换
只能通过STDIN读取内容

使用案例如下图:

[root@localhost ~]# cat /opt/passwd  
root123  
[root@localhost ~]# tr 'a-z' '0-9' < /opt/passwd  
9999123  

6.文本分析工具-文本编辑

文本编辑工具sed(流编辑器)
查找替换、删除、追加等操作在文本流上,无需交互式操作
默认不修改源文件内容
一次处理一行内容
处理内容的时候先放入缓冲区,即模式空间,经过sed处理后再输出到终端

语法格式:
sed [选项] file

常用选项:

  • -n 不输出模式空间的内容
  • -i 对源文件进行操作(默认不会修改源文件)
  • -i.bak 先备份源文件,再修改内容
  • -e 可以使用多个命令来进行操作
  • -r 使用扩展正则(sed默认支持基本正则)

7.sed流编辑器地址定界

地址定界: 指定sed对文件要处理的行;如果不指定,则默认处理所有行

  1. ##为数字,指定要进行处理操作的行
  2. $:表示最后一行,多个文件进行操作的时候,为最后一个文件的最后一行
  3. /regexp/:表示能够被regexp匹配到的行,regexp即基于正则表达式的匹配
  4. /regexp/I:匹配时忽略大小写
  5. \%regexp%:任何能够被regexp匹配到的行,换用%用其他字符也可以,如:#为边界符号
  6. addr1,addr2:指定范围内的所有的行(范围选定)
  7. first~step:指定起始的位置及步长,例如:1~2表示1,3,5...
  8. addr1,+N:指定行以及以后的N行
    addr1,~N:指定行开始的N行

8.sed流编辑器-案例1

示例:

  • sed -n 5p passwd 打印第5行
  • sed -n $p passwd 打印最后一行
  • sed -n '1,5p' passwd 打印第1-5行
  • sed -n '/root/Ip' passwd 匹配带有root关键词的行,并忽略大小写
  • sed -n '\%root%Ip' passwd 同上
  • sed '1,5d' passwd 删除第1-5行
  • sed -i.bak '1,5d' passwd 删除第1-5行,源文件被修改
  • sed '2a \abc' passwd 在文件第2行下面追加abc

9.案例2

  • sed 's/north/hello/' datafile 替换每行第一个north
  • sed 's/north/hello/g' datafile 全部替换
  • sed '1 s/north/hello/g' datafile 替换第一行所有的north
  • sed '1 s/north/hello/' datafile 替换第一行第一个north
  • sed '1 s/north/hello/2' datafile 只替换第一行第二个north

10.巧用替换删除内容(不是删除行)

  • sed 's/north//' datafile 删除所有行的第一个north
  • sed 's/north//g' datafile 删除全部的north
  • sed '1 s/north//2' datafile 删除第一行第二个
  • sed 's/^/#/' datafile 给每行开始加注释,^就代表开始
  • sed 's/^.//' datafile 删除每行第一个字母
  • sed 's/^\(..\)./\1/' datafile 删除第3个字母
    注释:\1代表第一个括号匹配到的内容
  • sed 's/^\<[a-Z]*[a-Z]\>//' datafile 删除每行第一个单词

http://www.lryc.cn/news/591991.html

相关文章:

  • 无符号乘法运算的硬件逻辑实现 ————取自《湖科大教书匠》
  • 【PTA数据结构 | C语言版】多叉堆的上下调整
  • Python MP3 归一化器和长度分割器实用工具开发指南
  • SQL映射文件
  • Android 应用保活思路
  • 树(Tree)
  • 【C++基础】--多态
  • web域名解析
  • 信息论至AI实践:交叉熵的原理全景与应用深度解析
  • Github库镜像到本地私有Gitlab服务器
  • 您的企业需要服务台经理吗?-ManageEngine卓豪
  • 《5分钟开发订单微服务!飞算JavaAI实战:IDEA插件安装→空指针修复→K8s部署全流程》
  • 3C电子产品蓝光三维扫描检测方案-中科米堆CASAIM
  • 机器视觉的布料丝印应用
  • Duckdb处理excel文件
  • 【实战】一次出口连接数超限事故引发的架构反思:强制代理、NAT 网关与大厂最佳实践
  • Python网络爬虫实现selenium对百度识图二次开发以及批量保存Excel
  • LangChain 源码剖析(七)RunnableBindingBase 深度剖析:给 Runnable“穿衣服“ 的装饰器架构
  • Yoga Air 32,Yoga Air 32,Yoga AIO 9 32IRH8(F0HH,F0HJ)一体机电脑原厂Win11系统镜像
  • 服务攻防-Java组件安全FastJson高版本JNDI不出网C3P0编码绕WAF写入文件CI链
  • AI产品经理面试宝典第36天:AI+旅游以及行业痛点相关面试题的指导
  • sql注入以及Python二分查找
  • 创建型模式
  • MinIO 分布式文件系统
  • 第二篇 html5和css3开发基础与应用
  • 【论文阅读】BEVFusion: A Simple and Robust LiDAR-Camera Fusion Framework
  • poi-excel-添加水印
  • 20250718【顺着234回文链表做两题反转】Leetcodehot100之20692【直接过12明天吧】今天计划
  • Vue导出Html为Word中包含图片在Microsoft Word显示异常问题
  • Excel批量生成SQL语句 Excel批量生成SQL脚本 Excel拼接sql