文本内容管理和文件查找

文本内容管理和文件查找

1、文本内容管理命令

1.1 文本内容查看

cat命令 拼接文件内容并输出至标准输出

# cat EOF
[root@jlin ~]# cat > test <<EOF
> test1
> JLin
> QingYu
> EOF
[root@jlin ~]# cat test
test1
JLin
QingYu

-n	#显示行号

// 示例
[root@jlin ~]# cat initial-setup-ks.cfg 
#version=DEVEL
# X Window System configuration information
xconfig  --startxonboot
# License agreement
eula --agreed
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
cdrom
# Use graphical install

[root@jlin ~]# cat -n initial-setup-ks.cfg 
     1  #version=DEVEL
     2  # X Window System configuration information
     3  xconfig  --startxonboot
     4  # License agreement
     5  eula --agreed
     6  # System authorization information
     7  auth --enableshadow --passalgo=sha512
     8  # Use CDROM installation media
     9  cdrom
    10  # Use graphical install

more命令 全屏查看文件内容,只能从前往后,不能从后往前;文件内容显示完后自动退出

// 示例
[root@jlin ~]# more initial-setup-ks.cfg 
#version=DEVEL
# X Window System configuration information
xconfig  --startxonboot
# License agreement
eula --agreed
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
--More--(19%)

less命令 全屏查看文本文件内容,可以从前往后也可以从后往前

/	#查找字符
n	#查找下一个
N	#查找上一个
b	#上一页
空格	#下一页

// 示例
[root@jlin ~]# less initial-setup-ks.cfg 
network  --bootproto=dhcp --device=ens34 --onboot=off --ipv6=auto --activate
network  --hostname=localhost.localdomain
initial-setup-ks.cfg

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

-n	#指定打印的行数,可以是负数

// 示例
[root@jlin ~]# head initial-setup-ks.cfg 
#version=DEVEL
# X Window System configuration information
xconfig  --startxonboot
# License agreement
eula --agreed
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
cdrom
# Use graphical install

[root@jlin ~]# head -n3 initial-setup-ks.cfg 
#version=DEVEL
# X Window System configuration information
xconfig  --startxonboot

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

-n	#指定打印的行数,可以是负数
head -15 | tail -1 #取出前十五行后看最后一行,查看第十五行的内容

// 示例
[root@jlin ~]# tail initial-setup-ks.cfg 
%end

%addon com_redhat_kdump --enable --reserve-mb=auto
%end

%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end


[root@jlin ~]# head -15 | tail -1 initial-setup-ks.cfg 
%end

1.2 文本内容排序

sort	#默认升序排序,不是按数值大小排序的
	‐n	#根据数值大小进行排序
	‐r	#逆序排序
	‐t	#字段分隔符
	‐k	#以哪个字段为关键字进行排序
	‐u	#去重,排序后相同的行只显示一次
	‐f	#排序时忽略字符大小写

uniq	//报告重复的行(连续且完全相同方为重复)
	‐c	//显示文件中行重复的次数
	‐d	//只显示重复的行
	‐u	//只显示未重复的行

1.3 文本内容统计

wc(word count)
	‐c	#显示字节数
	‐l	#显示行数
	‐w	#显示单词数

// 大小统计
du	#查看文件或目录占用的磁盘空间大小
	‐h	#以人类友好的方式显示大小
	‐s	#显示总的占用空间大小
	df	#报告文件系统磁盘空间使用情况
	‐h	#以人类友好的方式显示大小
	‐i	#显示inode信息

1.4 文本内容过滤

cut	#截取文本内容
cut OPTION... [FILE]...
	‐d	#指定字段分隔符,默认是空格
	‐f	#指定要显示的字段
	    ‐f 1,3 显示第1个字段和第3个字段
	    ‐f 1‐3 显示第1个字段到第3个字段

awk	#基于列的文本报告工具
‐F''	#选择分隔符;分隔符用单引号引起来
'/root/'	#匹配关键字root的行
'{print $#}'	#选择打印第#列
'NR==#{print $#}'	#选择打印第几行第几列

sed	#基于行的过滤和转换文本的流编辑器
‐i	#修改文件内容
sed ‐i 's/原字符串/新字符串/' file
#字符串替换原字符串,只替换每行第一个匹配到的字符

sed ‐i 's/原字符串/新字符串/g' file
#字符串替换原字符串,替换正行所有匹配到的字符串

grep egrep fgrep	#文本内容查找
	grep	#根据模式搜索文本内容,并将符合模式的内容行显示出来。
		#使用基本正则表达式定义的模式来过滤文本的命令。
	Pattern(模式)	#文本字符和正则表达式的元字符组合而成的匹配条件
	    ‐i	#忽略大小写
	    ‐‐color	#匹配到的内容高亮显示
	    ‐v	#显示没有被模式匹配到的行
	    ‐o	#只显示被模式匹配到的字符串
	    ‐E	#使用扩展正则表达式。grep ‐E相当于使用egrep
	    ‐q	#静默模式,不输出任何信息
	    ‐A1	#被模式匹配到的内容以及其后面一行的内容都显示出来,
	    	#如果把1改成2就表示被模式匹配到的内容以及其后面2行的内容均显示出来
	    ‐B1	#被模式匹配到的内容以及其前面一行的内容都显示出来,
	    ‐C1	#被模式匹配到的内容以及其前后的行各显示1行
fgrep	#不支持正则表达式,执行速度快

2、文件查找命令

find

// 实时查找,精确性强,遍历指定目录中所有文件完成查找
// 查找速度慢,支持众多查找标准

// 语法:find [OPTION...] 查找路径 查找标准 查找到以后的处理动作
    查找路径 //默认为当前目录
    查找标准 //默认为指定路径下的所有文件
	‐name 'filename'	#对文件名作精确匹配.支持glob通配符机制
	‐iname 'filename'	#文件名匹配时不区分大小写
	‐regex pattern	#基于正则表达式进行文件名匹配.以pattern
			#匹配整个文件路径字符串,而不仅仅是文件名称
    	‐user username	#根本属主来查找
	‐group groupname	#根据属组来查找
	‐uid	#根据UID进行查找,当用户被删除以后文件的属主会变为此用户的UID
	‐gid	#根据GID进行查找,当用户被删除以后文件的属组会变为此用户的GID
	‐nouser	#查找没有属主的文件.用户被删除的情况下产生的文件,只有uid没有属主
	‐nogroup	#查找没有属组的文件.组被删除的情况下产生的文件,只有gid没有属组
	‐type	#根据文件类型来查找(f,d,c,b,l,p,s)
	‐size	#根据文件大小进行查找。如1k、1M,+10k、+10M,‐1k、‐1M, +表示大于,‐表示小于
	    [+|‐]
	#K、#M、#G
	#Unit表示(从#‐1到#之间的范围大小)
	‐#Unit表示(从0到#‐1的范围大小)
	+#Unit表示(大于#的所有)
	‐mtime	#修改时间
	‐ctime	#改变时间
	 ‐atime //访问时间
	 	+5 //5天前
	  	‐5 //5天以内
	‐mmin	#多少分钟修改过
	‐cmin	#多少分钟改变过
	‐amin	#多少分钟访问过
		+5 //5分钟前
		‐5 //5分钟以内
	‐perm mode	#根据权限精确查找
	‐perm ‐mode	#文件权限能完全包含此mode时才符合条件
	‐perm /mode	#9位权限中有任何一位权限匹配都视为符合查找条件

// 组合条件:
	‐a
	‐o
	‐not
	!
	例:
		!A ‐a !B = !(A ‐o B)
	    	!A ‐o !B = !(A ‐a B)

// 处理动作:默认为显示到屏幕上
	‐print	#显示
	‐ls	#类似ls ‐l的形式显示每一个文件的详细信息
	‐delete	#删除查找到的文件
	‐fls /path/to/somefile	#查找到的所有文件的长格式信息保存至指定文件中
	‐ok COMMAND {} \;	#对查找到的每个文件执行COMMAND,每次操作都需要用户确认
	‐exec COMMAND {} \;	#对查找到的每个文件执行COMMAND,操作不需要确认

// 注意:find传递查找到的文件至后面指定的命令时,查找到所有符合条件的文件一次性传递给后面的命令,而有些命令不能接受过多参数,此时命令执行可能会失败。而xargs可规避此问题。

xargs	#通过管道将查找到的内容给xargs处理,xargs后面直接跟命令即可
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汉只只

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值