Linux文本相关命令

文本排序命令

sort

常用参数:

  • -n:以数值大小进行排序

  • -r:逆序排序

  • -t:字段分隔符

  • -k:以哪个字段为关键字进行排序

  • -u:去重,排序后相同的行只显示一次

  • -f:排序时忽略字符大小写

示例:

[root@rh1 ~]# cat aa				#查看文件aa内容
4
1
2
3
d
a
c
b
[root@rh1 ~]# sort -n aa #以数值大小进行排序
a
b
c
d
1
2
3
4
[root@rh1 ~]# sort -nr aa #以数值大小进行逆序排序
4
3
2
1
d
c
b
a
[root@rh1 ~]# sort -n -t : -k 3 /etc/passwd #以‘:’为分隔符的第三字段按照数值大小进行排序
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

文本去重命令

uniq

常用参数:

-c:显示文件中行连续重复的次数

-d:只显示连续重复的行

-u:只显示未连续重复的行

示例:

[root@rh1 ~]# cat aa
1
2
2
3
4
[root@rh1 ~]# uniq -c aa #显示文件中行连续重复的次数
1 1
2 2
1 3
1 4
[root@rh1 ~]# uniq -d aa #只显示连续重复的行
2
[root@rh1 ~]# uniq -u aa #只显示未连续重复的行
1
3
4

基础命令cut

从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。

常用参数:

  • -d:指定字段分隔符,默认是空格

  • -f:指定要显示的字段

    • -f 1,3:显示1和3字段
    • -f 1-3:显示1到3字段

示例:

[root@rh1 ~]# cut -d : -f 1-3 /etc/passwd			#显示/etc/passwd中以冒号为分隔符1至3字段所有字符
root:x:0
bin:x:1
daemon:x:2
adm:x:3
lp:x:4
sync:x:5
shutdown:x:6
halt:x:7
mail:x:8
operator:x:11
games:x:12
ftp:x:14
nobody:x:65534
dbus:x:81
systemd-coredump:x:999
systemd-resolve:x:193
tss:x:59
polkitd:x:998
unbound:x:997
sssd:x:996
sshd:x:74
rngd:x:995
abc:x:1000

文本三剑客

sed

文本替换命令

常用使用方法:

  • sed -i 's/文本内原有的文字/想要替换的文字/替换的列数' 文件名
  • sed -i 's/文本内原有的文字/想要替换的文字/g' 全部替换 文件名

示例:

[root@rh1 ~]# sed -i 's/hello/hi/1' aa			#将文件aa内第一列的hello替换成hi
[root@rh1 ~]# cat aa
hi hello
hi hello
hi hello
nihao
nihao
[root@rh1 ~]# sed -i 's/hello/123/g' aa #将文件aa内全部的hello替换成123
[root@rh1 ~]# cat aa
hi 123
hi 123
hi 123
nihao
nihao

awk

文本提取命令

使用方法:

-F : 指定分隔符

NR==1 : 指定第1行

{print$1,$3} : 指定第一列,第三列

示例:

[root@rh1 ~]# cat /etc/passwd				#查看/etc/passwd下内容
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@rh1 ~]# awk -F ':' 'NR==2{print$1}' /etc/passwd #打印以冒号为分隔符第2行第一列的字符
bin
[root@rh1 ~]# ifconfig #查看网卡相关配置信息,发现IP地址和子网掩码分别位于以空格为分隔符的第2行 第2列和第4列
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.244.132 netmask 255.255.255.0 broadcast 192.168.244.255
inet6 fe80::a64f:4f2f:2f21:d89d prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:93:82:41 txqueuelen 1000 (Ethernet)
RX packets 6379 bytes 614033 (599.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 4216 bytes 469545 (458.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@rh1 ~]# ifconfig | awk -F ' ' 'NR==2 {print$2,$4}' #利用管道符和awk命令打印IP地址和子网掩码
192.168.244.132 255.255.255.0

grep

文本过滤命令

根据正则表达式搜索文本,并将符合正则表达式的文本显示出来

默认使用基本正则表达式来过滤文本

常用参数:

  • -i:忽略大小写
  • -n:查找到的内容显示行数
  • --color:匹配到的内容高亮显示
  • -v:显示没有被正则表达式匹配到的内容
  • -o:只显示被正则表达式匹配到的内容
  • -E:使用扩展正则表达式,等同于egrep
  • -q:静默模式,不输出任何信息
  • -A #:此处的#必须是数字。被正则匹配到的内容以及其后面#行的内容都显示出来
  • -B #:此处的#必须是数字。被正则匹配到的内容以及其前面#行的内容都显示出来
  • -C #:此处的#必须是数字。被正则匹配到的内容及其前后各#行的内容都显示出来

示例:

[root@rh1 ~]# cat a.txt
AA 22
aa 333
aa 444
AA 111
[root@rh1 ~]# grep -i aa a.txt #匹配内容为aa,不区分大小写
AA 22
aa 333
aa 444
AA 111
[root@rh1 ~]# grep -v [a-z] a.txt #匹配a到z之外的内容
AA 22
AA 111
[root@rh1 ~]# grep -o [a-z] a.txt #只匹配a-z的内容
a
a
a
a
[root@rh1 ~]# egrep -o a{2} a.txt #此处为扩展正则表达式,重复匹配字符a两次
aa
aa
[root@rh1 ~]# cat b.txt #查看b.txt的文件内容
aa bb cc
11 22 33
qq ww ee
zz dd vv
[root@rh1 ~]# grep -A 2 22 b.txt #匹配字符22那一行极其后两行内容
11 22 33
qq ww ee
zz dd vv
[root@rh1 ~]# grep -A 1 -B 1 ww b.txt #匹配字符ww那一行及其前一行后一行内容
11 22 33
qq ww ee
zz dd vv
[root@rh1 ~]# grep -C 1 ww b.txt #匹配字符ww那一行及其前一行后一行内容
11 22 33
qq ww ee
zz dd vv

cat 拼接文件内容并输出至标准输出(屏幕)

常用参数:

  • -n:显示行号

示例:

[root@rh1 ~]# cat -n bbb			#将文件bbb的内容输出至屏幕并显示行号
1 qwer
2 asd
3 a
4 sad
5 zx
6 z
7 d
8
9

tac 连接文件并倒序打印内容至标准输出

示例:

[root@rh1 ~]# tac bbb				#连接文件并倒序打印内容至标准输出

d
z
zx
sad
a
asd
qwer

more 全屏查看文本文件内容,看完自动退出

示例:

[root@rh1 ~]# tac bbb				#全屏查看文本文件内容,看完自动退出

d
z
zx
sad
a
asd
qwer

less全屏查看文本文件内容,可从前往后看亦可从后往前看,看完不会自动退出

示例:

[root@rh1 ~]# less bbb				#查看文件bbb内容,默认不退出,按q退出
qwer
asd
a
sad
zx
z
d bbb(END)

head 从文件首部开始打印文件内容,默认打印10行

常用参数:

  • -n 15:查看文件前15行的内容

示例:

[root@rh1 ~]# head -3 bbb				#查看文件bbb前3行内容
qwer
asd
a

tail 从文件尾部开始打印文件内容,默认打印10行

常用参数:

  • -n 15:查看文件尾部15行的内容

  • -f:实时查看文件的更新

示例:

[root@rh1 ~]# tail -5 bbb				#查看文件bbb倒数五行内容(回车也算一行)
zx
z
d

wc文本统计

常用参数:

  • -c:统计文本字节数

  • -w:统计文本单词数

  • -l:统计文本行数

示例:

[root@rh1 ~]# wc -c bbb
24 bbb
[root@rh1 ~]# wc -w bbb
7 bbb
[root@rh1 ~]# wc -l bbb
9 bbb

Linux文本相关命令的更多相关文章

  1. Linux 文本相关命令(1)

    Linux 文本相关命令(1) 前言 最近线上环境(Windows Server)出现了一些问题,需要分析一下日志.感觉 Windows 下缺少了一些 Linux 系统中的小工具,像在这波操作中用到的 ...

  2. 编程小技巧之 Linux 文本处理命令

    合格的程序员都善于使用工具,正所谓君子性非异也,善假于物也.合理的利用 Linux 的命令行工具,可以提高我们的工作效率. 本文简单的介绍三个能使用 Linux 文本处理命令的场景,给大家开阔一下思路 ...

  3. Linux性能相关命令

    Linux性能相关命令 目录 Linux性能相关命令 1. 查看硬盘相关信息 2. 查看CPU相关信息 3. 查看内存相关信息 4. 查看进程运行的信息 1. 查看硬盘相关信息 cat /proc/s ...

  4. 编程小技巧之 Linux 文本处理命令(二)

    合格的程序员都善于使用工具,正所谓君子性非异也,善假于物也.合理的利用 Linux 的命令行工具,可以提高我们的工作效率. 本篇文章是<Linux 文本处理命令> 续篇,在前文的基础上再介 ...

  5. Linux文件管理相关命令

    Linux文件管理相关命令   作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在了解了Linux文件管理背景知识之后, 我们可以 ...

  6. linux文本处理命令

    linux文本处理命令 1.wc命令 基本介绍 文件的行统计.字符统计.字节统计 基本语法 wc  [OPTION]...  [FILE]... wc  [OPTION]...  --files0-f ...

  7. Linux进程相关命令使用场景

    Linux进程相关命令使用场景 在Linux系统上工作时,我们常常会碰到很多和进程相关的查询场景,今天在这里进行详细的讲解,进程相关的对象包括以下几个: 端口:Port 进程号:PId 执行文件所在路 ...

  8. Linux 网络相关命令 Cheat Sheet

    以下漫画形式呈现的常用 Linux 网络相关命令速查表来自 twitter -

  9. Linux解压缩相关命令

    Linux解压缩相关命令 运行级别: 0:关机 1:单用户 2:多用户无网络连接 3:多用户有网络连接 4:系统保留 5:图形界面 6:系统重启 通过init[0123456]来切换不同的运行级别 g ...

随机推荐

  1. 密码学的基础:X.690和对应的BER CER DER编码

    目录 简介 BER编码 类型标识符 长度 内容 CER编码和DER编码 总结 简介 之前我们讲到了优秀的数据描述语言ASN.1,很多协议标准都是使用ASN.1来进行描述的.对于ASN.1来说,只定义了 ...

  2. SP6779 GSS7 - Can you answer these queries VII(线段树,树链剖分)

    水题,只是坑点多,\(tag\)为\(0\)时可能也要\(pushdown\),所以要\(bool\)标记是否需要.最后树链剖分询问时注意线段有向!!! #include <cstring> ...

  3. 总结-LCT

    题单: https://www.zybuluo.com/xzyxzy/note/1027479 LuoguP3203 [HNOI2010]弹飞绵羊 动态加边,删边 #include <cstdi ...

  4. Redis 18 Jedis

    参考源 https://www.bilibili.com/video/BV1S54y1R7SB?spm_id_from=333.999.0.0 版本 本文章基于 Redis 6.2.6 概述 Jedi ...

  5. Spring源码 10 IOC refresh方法5

    本文章基于 Spring 5.3.15 Spring IOC 的核心是 AbstractApplicationContext 的 refresh 方法. 其中一共有 13 个主要方法,这里分析第 5 ...

  6. IP 地址分类和子网掩码

    IP 地址分类 IP 地址是由 4 组 8 位二进制表示的,格式为:xxxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx.十进制表示的格式为:xxxx.xxxx.xxxx.xxxx, ...

  7. mybatisplus使用xml

    一.配置xml路径 mybatis-plus: mapper-locations: classpath:mapper/*.xml 二.编写Mapper里面的方法 public interface Us ...

  8. 【读书笔记】15《The Bridge of Madison County》

    廊桥遗梦(梅丽尔·斯特里普主演) 罗伯特·詹姆斯·沃勒 99个笔记 The Beginning   美[|diˈklainz]v 辞谢,谢绝(邀请等)( decline的第三人称单数 );(道路.物体 ...

  9. 部署k8s的heapster监控

    Heapster是容器集群监控和性能分析工具,天然的支持Kubernetes和CoreOS heapster监控目前官网已经不更新,部署学习使用 heapster: 收集监控数据 influxdb:数 ...

  10. 在 C# CLR 中学习 C++ 之了解 namespace

    一:背景 相信大家在分析 dump 时,经常会看到 WKS 和 SRV 这样的字眼,如下代码所示: 00007ffa`778a07b8 coreclr!WKS::gc_heap::segment_st ...