• shell技巧


    一、利用xargs -I进行文件(只有一列)转置(列变行)

    cat inputfile | xargs -I {} printf {}"	"
    #是将读取到的一行作为一个参数传递给后边的命令

    二、删除当前目录下不包含关键词的文件

    #如当前目录下有许多文件及文件夹,但有个含有.json的文件,我不想删除,只想删除不包含*.json的文件及文件夹
    ls -I *.json #只列出不包含.json的文件及文件夹,注意I参数的使用
    ls -I *.json | xargs -I {} rm -rf {}
    

     

    三、对于匹配到关键词的前后行的操作

    ##打印出匹配到关键词的前一行和后一行
    
    #sed
    #We have a input file:
    << Flag
    123343242
    AAAAAAAA
    343243243
    BBBBBBBB
    139883857
    CCCCCCCC
    395783749
    DDDDDDDD
    Flag
    
    sed -n '/BB/{n;p}' input#打印出匹配到BB的下一行
    #139883857
    sed -n '/BB/{n;n;p}' input#打印出匹配到BB的下下一行
    #CCCCCCCC
    
    sed -n -e  '/BB/{n;p;n;p}' input#匹配到BB,打印下两行
    #139883857
    #CCCCCCCC
    
    sed -n '/BB/{g;1!p;};h' input#匹配到BB,打印上一行
    #343243243
    
    #grep
    grep -A1 'BB' input #-A after,下一行
    #BBBBBBBB
    #139883857
    
    grep -B1 'BB' input #-B before,上一行
    #343243243
    #BBBBBBBB
    
    grep -C1 'BB' input#-C上下行,当然其中的数字可以换成2,3,。。。
    #343243243
    #BBBBBBBB
    #139883857
    

    四、vi编辑文件时空格和tab的替换

     在.vimrc中添加以下代码后,重启vim即可实现按TAB产生4个空格:

      set ts=4  (注:ts是tabstop的缩写,设TAB宽4个空格)

      set expandtab

     对于已保存的文件,可以使用下面的方法进行空格和TAB的替换:

      TAB替换为空格: 

      :set ts=4
      :set expandtab
      :%retab!

       空格替换为TAB:

      :set ts=4

      :set noexpandtab

      :%retab!

    五、查找空文件

    find . -name "*".txt -type f -size 0c
    
  • 相关阅读:
    最长公共子序列算法问题代码(使用JavaScript实现)
    硬币找零问题算法几种不同的代码实现方式(使用Python实现)
    基数排序(使用Python实现)
    桶排序(使用Python实现)
    减法要用 signed 型
    16系列和18系列的不同
    Proteus中常用元器件名字
    数值类型
    PIC单片机之时钟设置
    MOS管使PIC单片机不能正常运行
  • 原文地址:https://www.cnblogs.com/always-fight/p/9112016.html
Copyright © 2020-2023  润新知