zoukankan      html  css  js  c++  java
  • vim 如何在行首/行尾添加字符 , 如何替换文件的字符。sed命令 如何替换文件的字符,或者在文件的选定字符前后添加内容。

    首先我们介绍有关于vim和sed 共同的参数选择

    我们先列举每个代表的意思,下面会详细介绍用法:

    a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
    c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
    d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
    i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
    s :取代,可以直接进行取代的工作哩!
    

    再来看我们原始的文件样式:

    一、vim如何在行首/行尾添加字符 , 如何替换文件的字符

    1、vim如何在行首/行尾添加字符 删除字符
    1)行首/行尾添加字符

    :%s/^/Y/g 其中%表示所有行,s表示替换,^代表行首,也可以用$代表行尾。其中%s 也可以使用1,2s替换代表第一行第二行进行添加,例如1,2s/^/Y/g

    举个栗子:2,4s/$/#good/g:

    2)行首/行尾删除字符

    :%s/^.{n} // 删除行首n个字符

    其中正则表达式"/^.{n}//"中,. 表示要删除的字符个数,".{n}"表示删除n个字符,可用n个"."表示;

    :%s/.{n}$// 删除行尾n个字符

    举个栗子:1,3s/.{4}$//

    2、 如何替换文件的字符

    %s/X/Y/g 其中X代表要被替代的字符,Y代表替换X的字符

    g 放在命令末尾,表示对搜索字符串的每次出现进行替换;不加 g,表示只对搜索

    字符串的所在行首次出现进行替换;g 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。

    举个栗子:2,3s/test/good/g:

    此外
    可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符,此种用法可在c++多行注释下使用

    二、sed 命令直接替换文件中的字符

    sed是一个“非交互式的”面向字符流的编辑器。能同时处理多个文件多行的内容,可以不对原文件改动,把整个文件输入到屏幕,可以把只匹配到模式的内容输入到屏幕上。还可以对原文件改动,但是不会再屏幕上返回结果。

    sed命令的语法格式:

    sed的命令格式: sed [option] 'sed command' filename

    sed的脚本格式:sed [option] -f 'sed script' filename

    sed命令的选项(option):

    -n :只打印模式匹配的行

    -e :直接在命令行模式上进行sed动作编辑,此为默认选项

    -f :将sed的动作写在一个文件内,用–f filename 执行filename内的sed动作

    -r :支持扩展表达式

    -i :直接修改文件内容

    结合我们一开始提到的选项内表达式,我们现在可以进行简单的sed操作。

    1)替换文件中的字符:

    举个栗子1:sed -i s/test/good/g test_for_vim_sed //替换文件中所有的test为good 并且该操作 作用于文件本身。去掉-i 只是将操作结果打印到终端。(保存文件名为test_for_vim_sed)

    举个栗子2:sed -i 1,2cgoodjob test_for_vim_sed //替换文件中第一第二行 为goodjob,两行变一行

    举个栗子3:sed -i 1,2agoodjob test_for_vim_sed //在文件中第一和第二行的下一行添加goodjob,总共四行。

    其中删除行首和行尾元素 可以参考vim的用法。两者很相似,有关sed的高级用法可以参考博客:

    https://www.cnblogs.com/ctaixw/p/5860221.html

  • 相关阅读:
    (二分查找 拓展) leetcode 69. Sqrt(x)
    (二分查找 拓展) leetcode 162. Find Peak Element && lintcode 75. Find Peak Element
    (链表) lintcode 219. Insert Node in Sorted Linked List
    (二分查找 拓展) leetcode 34. Find First and Last Position of Element in Sorted Array && lintcode 61. Search for a Range
    (最短路 Floyd) P2910 [USACO08OPEN]寻宝之路Clear And Present Danger 洛谷
    (字符串 数组 递归 双指针) leetcode 344. Reverse String
    (二叉树 DFS 递归) leetcode 112. Path Sum
    (二叉树 DFS 递归) leetcode 101. Symmetric Tree
    (二叉树 递归) leetcode 144. Binary Tree Preorder Traversal
    (二叉树 递归 DFS) leetcode 100. Same Tree
  • 原文地址:https://www.cnblogs.com/Smarc/p/14152054.html
Copyright © 2011-2022 走看看