操作文件的常用命令及相关参数

uniq  -c   取消重复的行,-c统计出重复的行的次数
sort  -nr  按照数值从大到小排序
sort  -c   检查文件是否按照顺序排序
sort  -k1  按照第一列进行排序
示例:
awk '{print $1}' /var/log/access.log |sort |uniq -c |sort -nr -k1 | head -n 10 查看日志访问最多的IP

tr 替换字符串中的字符
示例:echo aassnns | tr 'a' 'A'
diff命令,对比文件或者目录差异
-r 递归比较子目录中的文件
diff file1 file2

如果一个目录中有上百万或者上千万的小文件,在这个目录无法执行操作且无法打开,常规rm删除会卡死
示例:rsync --delete-before -d /empty/  /tttt/ empty是新建的空目录,tttt是小文件的目录
split切割文件
split -b 50M 文件名  -d  -a 2  test_
-b   按照大小拆分
-d   文件后缀是数字而不是字母
-a   数字几表示是几位数字
问题点:如果文件连贯,拆分之后内容可能不连贯
按照行数切割
split -100 文件名  切割后文件名    把文件按照100行一个切割开
cut 可以显示文件内容;合并不同文件到同一个文件;提取不同字段
cut  file1 file2 > file3
-f  选取指定字段
-d 选择指定分隔符
cut -f2 -d ","  file2.txt   以逗号分隔,输出第二列内容

显示文件指定行数的内容
cat test.txt | head -n  10   显示开头十行
cat test.txt | tail -n  10   显示末尾十行
cat test.txt | head -n  +10  第十行开始一直显示到结尾
sed -n '10,20p' test.txt     显示第10-20行内容
grep -r  test /root
遍历root目录及子目录下含有test字段的文件,显示出指定的行
-c  统计符合字符串条件的行的数量
-v  反选
-n 显示出字符串所在行的行号
-r和-R遍历目录时,对符号链接有区别,-r不查看符号链接,-R相反
egrep  扩展,可以匹配正则表达式
grep -v ^$    反选掉空行
grep -o  xxx   只输出需要匹配的内容,不在输出整行
echo "abcd.7.9.kk" | grep -o "7.9" --->只输出7.9
grep "xxx" * -R 过滤当前目录及下面所有目录包含xxx的内容
posted @ 2023-10-10 14:28  菜菜陈  阅读(36)  评论(0)    收藏  举报