常用的有如下两种方式:
1.VIM
vim file.txt
:%s/hello//gn
上述例子就是统计文本中”hello”字符串出现的次数
说明:
%s/pattern/string/flags 意思是把pattern替换为string
参数说明:
% - 指明操作区间,%表示全文本;可以使用1,$或者行区间代替 %s相当于1,$s
s – substitute,表示替换
g是全局
pattern - 要查找的字符串
// - 替代文本应该放在这里,两个斜杠中间没有任何字符表示无替代文本
g – Replace all occurences in the line. Without this argument, replacement occurs only for the first occurence in each line.
n – Report the number of matches, and do not actually substitute. 这是核心功能,同时也说明为什么//之间可以添加任意字符。
带特殊符号的字符串替换
2.GREP
grep -o "hello" demo.log | wc -l
grep常用参数:
-c 只显示有多少行匹配 ,而不具体显示匹配的行
-i 在字符串比较的时候忽略大小写
-n 在每一行前面打印该行在文件中的行数
grep的AND,多条件的与查询。
用法: grep 'pattern1' filename | grep 'pattern2'
使用管道符连接多个grep命令就可以得到多个条件同时满足才能查询出来的结果。
grep的OR,多条件的或查询。
用法1:grep 'pattern1|pattern2' filename
使用转义字符将管道符转为'或'符号。
用法2:grep -E 'pattern1|pattern2' filename
使用正则表达式选项。
用法3:egrep 'pattern1|pattern2' filename
egrep相当于grep -E。
grep的NOT,非查询(不满足当前条件的所有内容行)。
用法:grep -v 'pattern' filename
3.文件个数统计
查看文件夹下文件个数:
ls -l|grep "^-"|wc -l
或find ./company -type f | wc -l
查看某文件夹下文件的个数,包括子文件夹里的。
ls -lR|grep "^-"|wc -l
查看某文件夹下文件夹的个数,包括子文件夹里的。
ls -lR|grep "^d"|wc -l
说明:
ls -l
长列表输出该目录下文件信息(注意这里的文件,不同于一般的文件,可能是目录、链接、设备文件等)
grep "^-"
这里将长列表输出信息过滤一部分,只保留一般文件,如果只保留目录就是 ^d
wc -l
统计输出信息的行数,因为已经过滤得只剩一般文件了,所以统计结果就是一般文件信息的行数,又由于
一行信息对应一个文件,所以也就是文件的个数。
4.文件大小
du -sh 查看当前文件夹大小
du -sh * | sort -n 统计当前文件夹(目录)大小,并按文件大小排序
du -sk filename 查看指定文件大小
5.其他常用命令
vim常用命令:
(1) :k,ls/pattern//gn
统计k行到l行出现pattern的次数
(2) :%s/pattern//gn
统计在当前编辑文本出现的次数
(3) cat file.txt|greg –i pattern |wc –l
统计在文件中出现的行数
或者:
grep -i pattern file.txt | wc -l
或者grep -c pattern file.txt
(4) :%s/str1/str2/gn
统计在当前文本中str1出现的次数,并用str2替换str1
5)字符串替换::g/str1/s//str2/g
6)字符串替换,同上:
:1,$ s/str1/str2/g 用字符串 str2 替换正文中所有出现的字符串 str1