- A+
所属分类:linux技术
Linux文本内容管理和文件查找
1、文本内容管理命令
1.1文本内容排序
sort //默认升序排序,不是按数值大小排序的 -n //根据数值大小进行排序 -r //逆序排序 -t //字段分隔符 -k //以哪个字段为关键字进行排序 -u //去重,排序后相同的行只显示一次 -f //排序时忽略字符大小写 uniq //将重复的行只显示一遍(连续且完全相同方为重复) -c //显示文件中行重复的次数 -d //只显示重复的行 -u //只显示未重复的行
1.2文本内容统计
//文本内容统计 wc(word count) -l //显示行数 -w //显示单词数 -c //显示字节数 //文件大小统计 du //查看文件或目录占用的磁盘空间大小 -h //以人类友好的方式显示大小 -s //显示总的占用空间大小 //磁盘空间统计 df //报告文件系统磁盘空间使用情况 -h //以人类友好的方式显示大小 -i //显示inode信息 -T //查看文件系统类型
1.3文本内容过滤
cut按列截取文本内容
cut //截取文本内容 -d '' //指定字段分隔符,默认是空格 -f //指定要显示的字段 -f 1,3 //显示第1个字段和第3个字段 -f 1-3 //显示第1个字段到第3个字段
awk文本和数据进行处理的编程语言
awk //awk文本和数据进行处理的编程语言 语法:awk [选项] '匹配模式 {执行动作}' -F '' //指定分隔符,可以使用正则表达式[]指定多个分隔符 -v OFS='' //指定打印时的分隔符 变量: NF //行数 NR //列数 执行动作: '{print $#}' //选择打印第#列,$0代表所有列,$NF代表最后1列 匹配模式: '/关键字/' //匹配关键字的行,支持正则表达式 '/关键字1/,/关键字2/' //匹配从关键字1到关键字2中间所有的行 'NR==1' //匹配第1行 'NR>=10' //匹配行数大于10的所有行并显示行号 '$1==1' //匹配第1列的值等于1的行 '$1>=10 && $1<=20' //匹配第1列的值大于等于10并小于等于20的行 '$1>=10 || $3!=20' //匹配第1列的值大于等于10或者第3列的值不等于20的行 '$NF~"/sbin/nologin"' //匹配最后1列字符为/sbin/nologin的行 '$NF~!"/sbin/nologin"' //匹配最后1列字符不为/sbin/nologin的行 语法示例: awk -F ':' '{print "第一列:"$1,"第二列:"$2,"第三列:"$3}' /etc/passwd //使用:为分隔符分割/etc/passwd文件中的内容,按照想要的格式打印出来 awk -F ':' -v OFS='-' '{print $1,$2,$3}' /etc/passwd //使用:为分隔符分割/etc/passwd文件中的内容,按照想要的格式打印出来
grep文本过滤
grep //搜索文本内容,并将匹配的内容所在一整行都显示出来 //支持使用正则表达式来过滤文本 --color //匹配到的内容高亮显示 -i //忽略大小写 -w //强制模式,完全匹配字词 -n //显示匹配到的内容的行号 -c //显示匹配到的内容一共有多少行 -v //显示没有被模式匹配到的行 -o //只显示被模式匹配到的字符串 -E //使用扩展正则表达式。grep -E相当于使用egrep -q //静默模式,不向屏幕输出任何信息 -A 1 //被模式匹配到的内容以及其后面1行的内容都显示出来 -B 1 //被模式匹配到的内容以及其前面1行的内容都显示出来 -C 1 //被模式匹配到的内容以及其前后的行各显示1行 egrep //基于正则表达式查找文件内容 fgrep //不支持正则表达式,执行速度快
sed文本过滤和编辑器
sed //基于行的过滤和转换文本的流编辑器 语法:sed [选项] [过滤条件和sed命令] [输入文件] -n //取消默认sed输出,用于过滤文本内容 -r //使用扩展正则表达式 -e //一条语句执行多条sed命令 -i //修改文件内容
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,+表示大于,-表示小于 -mtime //修改时间 -ctime //改变时间 -atime //访问时间 +5 //5天前 -5 //5天以内 -mmin //多少分钟修改过 -cmin //多少分钟改变过 -amin //多少分钟访问过 +5 //5分钟前 -5 //5分钟以内 -perm mode //根据权限精确查找 -perm -mode //9位权限中非0的权限必须完全匹配 -perm /mode //9位权限中非0的权限任何一位匹配即可 //组合条件: -a //多条件同时满足(与) -o //多条件满足其中一个即可(或) -not //满足前面不满足后面(非) ! // ! 和-not含义一样 //处理动作:默认为显示到屏幕上 -print //显示 -ls //类似ls -l的形式显示每一个文件的详细信息 -fls /path/to/somefile //查找到的所有文件的长格式信息保存至指定文件中 -delete //删除查找到的文件 -ok COMMAND {} ; //对查找到的每个文件执行COMMAND,每次操作都需要用户确认 -exec COMMAND {} ; //对查找到的每个文件执行COMMAND,操作不需要确认 注意:find传递查找到的文件至后面指定的命令时,查找到所有符合条件的文件一次性传递给后面的命令,而有些命令不能接受过多参数,此时命令执行可能会失败。而xargs可规避此问题。 | xargs //通过管道将查找到的内容给xargs处理,xargs会把内容进行拆分,拆分完毕后将内容作为参数交给后面的命令执行。