首页 > 其他分享 >vi/vim/sed常用命令

vi/vim/sed常用命令

时间:2023-07-14 11:11:13浏览次数:27  
标签:txt bar vi 查找 sed 常用命令 foo 替换

1、vi a.txt 进去文件,在没有进入编辑模式(i)下 操作如下:

编辑:

  • 复制当前行:  yy
  • 粘贴:p
  • 删除当前行:dd
  • 清空文件: :%d
  • 回退: u
  • 撤销回退:ctrl+r

 

光标移动:  

  • 光标到页首: H
  • 光标到页尾: L
  • 光标到中部:M
  • 显示行号:  :set nu
  • 取消显示行号: :set nonu
  • 跳转到指定行(例如第5行):  :5  
  • 翻上一页: ctrl+b
  • 翻下一页: ctrl+f

查找:

  • 查找字符串(例如aaa): /aaa
  • 查找下一个(查找操作回车后输入): n
  • 查找上一个(查找操作回车后输入): N

替换( / 可以用 # 代替):

  • 全文替换(将apple/orange/mango 替换尾fruit): :%s/apple\|orange\|mango/fruit/g
  • 当前行全替换(将foo替换尾bar): :s/foo/bar/g
  • 当前行替换首次出现:  :s/foo/bar/
  • 不区分大小写替换(i标志):  :s/foo/bar/i
  • 指定行替换(3~5行)所有出现:  :3,10s/foo/bar/g
  • 相对行替换(当前行~接下来4行): :.,+4s/foo/bar/g
  • 当前行到结尾替换: :.,$s/foo/bar/g

 

2、sed 命令

打印:

  • 输出指定行(打印第二行):  sed -n  '2p'   a.txt    
  • 输出非行(除了2到4行的全部内容): sed  '2,4d' a.txt
  • 替换输出(替换第 3 行中 89 替换成 99 数据) :  sed '3s/89/99/g' a.txt

替换文件本身:

  • 不会打印(替换第 3 行中 89 替换成 99 数据): sed -i '3s/89/99/g' a.txt

 

标签:txt,bar,vi,查找,sed,常用命令,foo,替换
From: https://www.cnblogs.com/bestzhang/p/17553185.html

相关文章

  • WPF TreeView 检测SelectedItem变化的简单方案
    TreeView无法绑定SelectedItem,而又想知道treeview的selecteditem的变化,当然目前有很多方法,我这里简单的提供一个。目前主要思路就是通过处理xaml的TreeViewItem的IsSelected属性来进行绑定。<TreeViewBorderThickness="0"Width="220"......
  • 惠普台式机电脑无法启动,出现bootdevice not found
     电脑启动后出现了这个。首先用老毛桃进行了 系统引导修复重启 问题如故然后f10进入bios修改了设置,如下图 然后重启就可以了。......
  • vim编辑器
    操作图vim的三种模式 编辑模式     ......
  • Vue3+Vue-Router+TypeScript+Vite+Element-Plus+Axios+Pinia快速搭建开发框架
    1、环境准备(1)首先你得需要安装node和npm2、环境初始化(1)先随意找个文件夹,初始化vite#安装pnpmnpmi-gpnpm#初始化vitepnpmcreatevite#安装依赖pnpminstall(2)最后我们执行pnpmrundev3、安装插件(1)Eslint校验代码工具安装eslint#安装eslint......
  • navicat中数据传输、数据同步、结构同步的区别
    数据传输:表数据和结构一起同步(之前的数据会被覆盖)数据同步:表数据同步、表结构不同步(之前数据被覆盖(所有字段全部选择的情况下),数据同步时可选择要同步的数据(之前的可不覆盖,只同步新增的))结构同步:表数据不同步、表结构同步 注意:无论是数据传输、数据同步、结构同步都容易造成同......
  • 远程连接工具xshell上用vi/vim小键盘无法使用的解决办法
    1、https://www.cnblogs.com/my-first-blog-lgz/p/17361128.html问题:后台开发人员经常使用Xshell来访问远程服务器,在用vim(或vi)编辑文件的时,使用小键盘数字键的时候,可能会输入一堆字母和换行,并不是数字。修改:1.修改会话属性2.选择类别“终端”-VT模式3.选择“初始数字键盘模......
  • 验证torch和torchvision安装成功
    importtorchprint("torch_version:",torch.__version__)print("cuda_version:",torch.version.cuda)print("cudnn_version:",torch.backends.cudnn.version())print("----------------------------------")flag=torch.cuda.is_ava......
  • 【Netty】「优化进阶」(二)浅谈 LengthFieldBasedFrameDecoder:如何实现可靠的消息分割?
    前言本篇博文是《从0到1学习Netty》中进阶系列的第二篇博文,主要内容是通过不同的应用案例来了解LengthFieldBasedFrameDecoder是如何处理不同的消息,实现自动分割,往期系列文章请访问博主的Netty专栏,博文中的所有代码全部收集在博主的GitHub仓库中;介绍LengthFieldBasedFrameDe......
  • 【Azure App Service】Web Job 报错 UNC paths are not supported. Defaulting to Win
    问题描述PHP的WebJob,通过artisan来配置路径启动PHP任务,相关启动脚本如下:artisan_path="d:\\home\\site\\wwwroot";cd${artisan_path}echo"\n"pwdphpartisanschedule:run但是,在运行的时候遇见报错:[07/06/202301:57:31>0f21a2:INFO]/d/home/site/wwwroo......
  • 发送请求忘记指定协议方式,日志com.jcraft.jsch.JSchException: java.net.ConnectExcep
      2023-07-1319:06:51.487-ERROR17629---[http-nio-192.168.2.206-36093-exec-8]c.t.b.p.b.c.common.util.sftp.SftpPool:com.jcraft.jsch.JSchException:java.net.ConnectException:拒绝连接(Connectionrefused)_atcom.jcraft.jsch.Util.createSocket(......