linux基础:常用字符编辑和统计命令

常用的有如下两种方式:

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

原文地址:https://www.cnblogs.com/yangxiayi1987/p/13625542.html