Linux文本相关命令
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文本相关命令的更多相关文章
- Linux 文本相关命令(1)
Linux 文本相关命令(1) 前言 最近线上环境(Windows Server)出现了一些问题,需要分析一下日志.感觉 Windows 下缺少了一些 Linux 系统中的小工具,像在这波操作中用到的 ...
- 编程小技巧之 Linux 文本处理命令
合格的程序员都善于使用工具,正所谓君子性非异也,善假于物也.合理的利用 Linux 的命令行工具,可以提高我们的工作效率. 本文简单的介绍三个能使用 Linux 文本处理命令的场景,给大家开阔一下思路 ...
- Linux性能相关命令
Linux性能相关命令 目录 Linux性能相关命令 1. 查看硬盘相关信息 2. 查看CPU相关信息 3. 查看内存相关信息 4. 查看进程运行的信息 1. 查看硬盘相关信息 cat /proc/s ...
- 编程小技巧之 Linux 文本处理命令(二)
合格的程序员都善于使用工具,正所谓君子性非异也,善假于物也.合理的利用 Linux 的命令行工具,可以提高我们的工作效率. 本篇文章是<Linux 文本处理命令> 续篇,在前文的基础上再介 ...
- Linux文件管理相关命令
Linux文件管理相关命令 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在了解了Linux文件管理背景知识之后, 我们可以 ...
- linux文本处理命令
linux文本处理命令 1.wc命令 基本介绍 文件的行统计.字符统计.字节统计 基本语法 wc [OPTION]... [FILE]... wc [OPTION]... --files0-f ...
- Linux进程相关命令使用场景
Linux进程相关命令使用场景 在Linux系统上工作时,我们常常会碰到很多和进程相关的查询场景,今天在这里进行详细的讲解,进程相关的对象包括以下几个: 端口:Port 进程号:PId 执行文件所在路 ...
- Linux 网络相关命令 Cheat Sheet
以下漫画形式呈现的常用 Linux 网络相关命令速查表来自 twitter -
- Linux解压缩相关命令
Linux解压缩相关命令 运行级别: 0:关机 1:单用户 2:多用户无网络连接 3:多用户有网络连接 4:系统保留 5:图形界面 6:系统重启 通过init[0123456]来切换不同的运行级别 g ...
随机推荐
- python 文件操作(读写等)
简介 在实际开发中我们需要对文件做一些操作,例如读写文件.在文件中新添内容等,通常情况下,我们会使用open函数进行相关文件的操作,下面将介绍一下关于open读写的相关内容. open()方法 ope ...
- Nginx listen、server_name、location的配置
# Nginx静态资源的配置指令 # listen指令 # 语法 listen address[:port][default_server] # 如: listen 127.0.0.1:8000: # ...
- 一文带你弄懂 CDN 技术的原理
对于 CDN 这个东西,相信大家都有耳闻,感觉既陌生但又熟悉.最近深入了解了一下 CDN,这才发现原来 CDN 如此重要!今天就跟大家科普一下 CDN 是什么,以及为啥要有 CDN,最后再讲一下 CD ...
- 论文解读(g-U-Nets)《Graph U-Nets》
论文信息 论文标题:Graph U-Nets论文作者:Hongyang Gao, Shuiwang Ji论文来源:2019,ICML论文地址:download 论文代码:download 1 Intr ...
- Docker 容器虚拟化
Docker 容器虚拟化 1.虚拟化网络 Network Namespace 是 Linux 内核提供的功能,是实现网络虚拟化的重要功能,它能创建多个隔离的网络空间,它们有独自网络栈信息.不管是虚拟机 ...
- React报错之Cannot assign to 'current' because it is a read-only property
正文从这开始~ 总览 当我们用一个null值初始化一个ref,但在其类型中不包括null时,就会发生"Cannot assign to 'current' because it is a r ...
- Luogu4391 [BOI2009]Radio Transmission 无线传输 (KMP)
\(最小循环节\) \(=\) \(lenghth - next[lenghth]\) #include <iostream> #include <cstdio> #inclu ...
- java-方法创建与使用
1.方法: 1)封装一段特定的业务逻辑功能 2)方法尽可能的独立,一个方法只干一件事(低耦合) 3)方法可以被反复调用多次(高复用) 4)减少代码重复,有利于代码维护,有利于团队协作开发2.方法的定义 ...
- ceph 010 clustermap ceph调优
cluster map [ceph: root@clienta /]# ceph mon dump epoch 4 fsid 2ae6d05a-229a-11ec-925e-52540000fa0c ...
- Java项目生成电脑桌面快捷脚本
一.场景说明 经常需要查询以及设置手机验证码,一般验证码都是放在Redis,为了节省短信费,可以直接设置Redis,本篇内容主要介绍如何便捷查询和设置手机验证码,非开发人员也会操作. 二.Java代码 ...