当前位置: 首页 > news >正文

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.txthttp://www.etiantian.org/index.htmlhttp://www.etiantian.org/1.htmlhttp://post.etiantian.org/index.htmlhttp://mp3.etiantian.org/index.htmlhttp://www.etiantian.org/3.htmlhttp://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只输出匹配的内容
http://www.lryc.cn/news/104056.html

相关文章:

  • vue拖拽改变宽度
  • 华为数通HCIA-ARP(地址解析协议)详细解析
  • 【Python机器学习】实验04(1) 多分类(基于逻辑回归)实践
  • 【ChatGLM_01】ChatGLM2-6B本地安装与部署(大语言模型)
  • 谷歌Tsunami(海啸)扫描器搭建扩展使用教程
  • 诚迈科技承办大同首届信息技术产业峰会,共话数字经济崭新未来
  • 【Python】Python使用TK实现动态爱心效果
  • Unity3d C#快速打开萤石云监控视频流(ezopen)支持WebGL平台,替代UMP播放视频流的方案(含源码)
  • 【Android】APP启动优化学习笔记
  • docker的使用
  • iOS使用Rust调研
  • 抖音引流推广的几个方法,抖音全自动引流脚本软件详细使用教学
  • k8s概念-DaemonSet
  • Mac 终端快捷键设置:如何给 Mac 中的 Terminal 设置 Ctrl+Alt+T 快捷键快速启动
  • VR 变电站事故追忆反演——正泰电力携手图扑
  • fpga开发——蜂鸣器
  • 【Liux下6818开发板(ARM)】触摸屏
  • 苍穹外卖day11——数据统计图形报表(Apache ECharts)
  • 在制作PC端Game Launcher游戏启动器时涉及到的技术选型
  • SQL力扣练习(九)
  • 软考高级架构师笔记-10数学计算题
  • 设计模式五:建造者模式(Builder Pattern)
  • C++多线程编程(包含c++20内容)
  • 【C语言】通讯录2.0 (动态增长版)
  • 详解AMQP协议以及JAVA体系中的AMQP
  • 跨境电商外贸常态下,深度分析Live Market的优势
  • vue2企业级项目(八)
  • 小研究 - 主动式微服务细粒度弹性缩放算法研究(二)
  • 【雕爷学编程】Arduino动手做(177)---ESP-32 掌控板
  • 使用Gunicorn+Nginx部署Flask项目