zoukankan      html  css  js  c++  java
  • Linux常用命令----文件操作

    1、查找文件内的关键字  

    1 cat test | grep "key"           //非全词匹配      
      
    2 grep "key" test                 //非全词匹配
     
    3 grep  -w "key" test             //全词匹配
     
    4 grep  -i "key" test             //忽略大小写

     

    2、查找文件内的关键字的个数

    1 cat test | grep "key" | wc -l
     
    2 grep "key" test | wc -l

     

    3、使用grep查找两个文件不同的行

    1 grep -wvf test1 test2  //test1中不存在,test2中存在的行
    
    2 grep -wvf test2 test1  //test2中不存在,test1中存在的行

     

    4、使用grep查找两个文件相同的行

    1 grep -wf test1 test2

     

    5、使用uniq查找两个文件不同的行  

    1 cat test1 test2 | sort | uniq -u

     

    6、使用uniq查找两个文件相同的行

    1 cat test1 test2 | sort | uniq -d

     

    7、文本行去重并按重复次数排序

    1 sort test | uniq -c | sort -rn

     

    8、删除文本中有关键字的行

    1 sed -i '/^key/d' test        //删除以关键字key开头的行
     
    2 sed -i '/key/d' test          //删除包含关键字key的行

     

    9、删除文本中的空行

    1 sed '/^$/d' test

     

    10、批量给文件添加后缀名

    1 rename 's/$/.txt' *          //给当前目录下的所有文件添加.txt后缀

     

    11、批量更改文件后缀名

    1 rename 's/.csv/.txt' *        //将当前目录下的所有.csv后缀名转换为.txt后缀名

     

    12、文件大小写转换

    1 cat test | tr 'a-z' 'A-Z'

     

    13、文件中字符串替换

    1 sed -i 's/old_key/new_key/g' test        //将test中所有的old_key替换成new_key

     

    14、查找指定大小文件并放到指定路径

    1 find -size -100k | xargs -i cp {} ./path_name        // 将当前目录下100K的文件拷贝到path_name路径下
     
    2 find -size -100k | xargs -i mv {} ./path_name        // 将当前目录下100K的文件移动到path_name路径下

     

    15、在test2中查找test1中的每一行,并去重计数

    for line in $(cat test1);do cat test2 |grep -wi "$line$"; done|sort -rn|wc -l

     

    16、查看目录下(包括子目录)所有文件的大小

    1 find ./ -type f | xargs -i ls -lh {} | awk '{print $5}' 

     

    17、批量计算文件夹内所有文件的MD5

    1 find ./Sample/ -type f | xargs -i md5sum {} | tr 'a-z' 'A-Z' |awk '{print $1}'        //批量获取Sample目录下所有文件的MD5

     

    18、将大文件拆分成小文件

    split -l 100 test temp -d -a 3         //将文件test按照每100行拆分成一个文件,新生成的子文件以temp为文件名前缀,以3位数字为文件名后缀
    // -l 按行拆分
    // -b按大小拆分,单位(K,M,G,T)
    //-d 默认后缀名为数字
    //-a 指定后缀长度

     

    19、awk 获取文件的某一行某一列

    1 //例:<test>文件有如下内容
    2 //      1    李明    18
    3 //      2    张三    19
    4 //      3    赵四    20
    5 //    4    刘五    19
    6 cat test | awk  '{print $3}'        //获取test文件的第三列 18 19 20 
    6 cat test | awk -F ","  '{print $3}'        //按指定字符分割列,获取test文件的第三列 18 19 20 
    cat test | awk -F ","  '$3=="19"  {print $2}'        //获取test文件的第三列为19的人:张三,刘五

     

  • 相关阅读:
    学习计划 23月
    bash学习笔记
    bash 中 while读取文件并通过 ssh执行命令出现的问题及解决方法
    bash 学习笔记2
    fedora 启动 openssh
    lesson5 键盘的应用
    第十三章 int指令
    第十五章 外中断
    第十二章 内中断
    第十四章 端口
  • 原文地址:https://www.cnblogs.com/chunqiu666/p/12704708.html
Copyright © 2011-2022 走看看