在linux定位问题经常会使用一些常用的命令来提高效率。接下来会介绍3个常用命令
1、sed
sed主要是用来将数据进行选取、替换、删除、新增的命令
sed命令格式:sed [选项] '[动作]' 文件名
选项 | 意义 | 例子 |
---|---|---|
-n | 经过sed处理的那一行会显示 | sed -n '5p' main.go #查看main.go的第5行 |
-i | 直接编辑文件 | sed -i 's/2010/2021/g' ./main.go #将main.go的2010替换为2021 |
动作 | 意义 | 例子 |
---|---|---|
a(append) | 新增,新增之后在新的一行出现 | sed '3a wuwu' test1 # 在test1的第三行之后,写入wuwu |
d | 删除 | sed ‘2,3d’ main.go #删除2行,3行 |
i(insert) | 插入,新增之后在新的一行出现 | sed '3a wuwu' test1 # 在test1的第三行,插入wuwu |
s | 取代 | sed -i 's/2010/2021/g' ./main.go > test.go # 将main.go的2010替换为2021并输出为test.go |
p | 通常与-n一起执行,打印对应的列 | sed -n '/h/p' test1 #查看test1包含h的字符串,并打印 sed -n '/^w/p' test1 #查看以w开头的字符串,并打印对应行 |
g | 行内全局替换 | sed -i 's/2010/2021/g' ./main.go #将main.go的2010替换为2021 |
2、awk
awk主要是用来取列
awk命令格式:awk ‘{动作}‘ file
动作:格式化输出,流程控制语句。举几个例子:
1)删除当前目录下文件大小大于1024的文件
ls -l |awk '{if($5>1024){print $5}}'
2)计算当前文件所有文件的大小
BEGIN 初始化代码;END所有执行完之后执行,经常使用打印语句
ll |awk 'BEGIN{size=0;}{size=size+$5;} END {print "the size is ",size}'
3、grep
grep主要用来搜索
grep命令格式:grep [option]
option | 意义 | 例子 |
---|---|---|
-v | 不包含 | grep -v wu test1 # 显示不包含wu的所有行 |
-i | 忽略大小写 | grep -i wu test1 # 显示包含wu且不区分大小写 |
-n | 显示匹配的行号 | grep -n wu test1 # 显示wu所在的行数 |
-c | 统计匹配的行数 | grep -ic wu test1 # 显示包含wu的总个数 |
-r | 递归 | grep -ic wu # 显示当前目录下包含wu的总个数 |