vim、awk、tail、grep的使用

vim命令

	$定位到光标所在行的行末
	^定位到光标所在行的行首
	gg定位到文件的首行
	G定位到文件的末行
	dd删除光标所在行
	ndd删除n行(从光标所在行开始)
	D删除光标所在行,使之变为空白行
	x删除光标所在位置字符
	nx删除n个字符,从光标开始向后
	X删除光标前一个字符
	nX删除光标前n个字符

	set nu显示行号
	set nonu取消显示行号

搜索:
	:/关键词
	回车之后,按 n 来搜索下一个出现的匹配结果

撤销和恢复
	u就是撤销之前的操作
	ctrl+r就是恢复(取消)撤销的动作

文件内容的替换
	第一步::进入底行模式
	第二步: s/ 要替换的关键字/替换后的关键字 + 回车替换光标所在行的第一个(从左到右)满足条件的关键字
	s/要替换的关键字/替换后的关键字g + 回车替换光标所在行的所有满足条件的关键字
	%s/要替换的关键字/替换后的关键字 + 回车针对文件的所有行进行替换(每行满足条件的第一个关键字)
	 %s/要替换的关键字/替换后的关键字g + 回车 针对文件的所有行进行替换(每行所有满足条件的关键字)

awk命令的常用功能

awk命令的参数选项及说明

给文件每行的内容之前加上行号。
		awk '{print NR,$0}' reload.sh
显示文件的第2行到6行,并打印行号
	awk 'NR==2,NR==5 {print NR,$0}' reload.sh
获取此文件的第1列和第三列、最后一列
	awk -F ':' '{print $1,$3,$NF}'
		说明:
			这里我们使用了awk的-F参数,注意一定要是大写的,-F参数表示指定分隔符来切割每一行的内容,-F后面可用单双引号或不加引号,但是,建议加双引号。
			这里我们指定的分隔符是冒号":",这样该行就被不同的冒号切割成了很多个部分。
			切成了很多个部分之后,若我们要使用某一个部分该怎么办?使用"$(美元符号)"后面接数字,$1表示第一个部分(第一列),$2(第二列),$3(第三列),依此类推,但$0表示整行。
		这里有一个特殊的表示最后一列的方法,就通过$NF来表示最后一列。
		
使用awk将文件中的qq替换为tihuan(使用awk函数实现)
	awk '{gsub("qq","tihuan",$0);print $0}'
			gsub("替换对象","替换成什么内容",哪一列)
			gsub与后面的括号之间不能有空格。
			替换对象、替换成什么内容以及哪一列之间要用逗号分隔开。
			替换对象的外面要有双引号或双斜线包裹起来,即"替换对象"或/替换对象/。
			替换成什么内容就只能用双引号包裹起来了,即"替换成什么内容"。
			最后一个是哪一列,这个是可以省略的,省略的时候表示要替换整行的内容,相当于是写上了$0。
			
取出eth0网卡对应的ip地址。
	ifconfig eth0 |awk -F "(addr:)|(  Bcast:)" 'NR==2{print $2}'或者ifconfig eth0|awk -F "[ :]+"  'NR==2{print $4}'
		说明:
			-F"(addr:)|(Bcast:)"这个还是比较容易理解的,我们的目标是取得ip,本例是10.0.0.8,ip的左边是"addr:",右边是"Bcast:",左边分隔,即把"addr:"作为分隔符,右边分隔,即把"Bcast:"作为分隔符,剩下中间的ip就是我们想要的。
			但是还需要一个条件,ip地址在第二行所以使用NR==2来表示。
	
将域名取出并根据域名进行计数排序处理
	bash-5.0# cat domainTest.txt
	http://www.etiantian.org/index.html
	http://www.etiantian.org/1.html
	http://post.etiantian.org/index.html
	http://mp3.etiantian.org/index.html
	http://www.etiantian.org/3.html
	http://post.etiantian.org/2.html
	
	取出域名:awk -F '/' '{print $3}' domainTest.txt
	排序:awk -F '/' '{print $3}' domainTest.txt | sort
	去重计数:awk -F '/' '{print $3}' domainTest.txt | sort | uniq -c

tail语法

tail [ -f ] [ -c Number | -n Number | -m Number| -b Number | -k Number ] [ File ]
	-f 该参数用于监视File文件增长。
	-c Number 从 Number 字节位置读取指定文件
	-n Number 从 Number 行位置读取指定文件。
	-m Number 从 Number 多字节字符位置读取指定文件,比如你的文件如果包含中文字,如果指定-c参数,可能导致截断,但使用-m则会避免该问题。
	-b Number 从 Number 表示的512字节块位置读取指定文件。
-k Number 从 Number 表示的1KB块位置读取指定文件。

grep命令的基本概念和用途

参数选项 解释说明
-c 只统计匹配的行数
-v 排除匹配结果
-n 显示匹配行与行号
-i 不区分大小写
-E 使用egrep命令
-color = auto 为grep过滤结果添加颜色
-w 只匹配过滤的单词
-o 只输出匹配的内容
相关推荐
jinhuazhe20133 小时前
如何解决vscode powershell乱码
ide·vscode·编辑器
paintstar7 小时前
vscode 快速切换cangjie版本
ide·vscode·编辑器·仓颉·cangjie
科协软件20187 小时前
vscode+latex快捷键
ide·vscode·编辑器
半糖11227 小时前
【VSCode】常用插件汇总
vscode·编辑器
cnnews7 小时前
在vscode中的ESP-IDF插件中使用Arduino框架作为组件
ide·vscode·编辑器
乐闻x9 小时前
VSCode 插件开发实战(三):插件配置项自定义设置
ide·vscode·编辑器
不吃鱼的羊15 小时前
Excel生成DBC脚本源文件
服务器·网络·excel
chenchihwen15 小时前
数据分析时的json to excel 转换的好用小工具
数据分析·json·excel
lxxxxl17 小时前
C#调用OpenXml,读取excel行数据,遇到空单元跳过现象处理
excel