• 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的人:张三,刘五

     

  • 相关阅读:
    网络编程实验一 win socket基础 获取服务器时间
    ASP.NET Core入门
    vue-element-template 获取后端路由表动态生成权限
    vue-admin-template只有一个子菜单时父级菜单不显示问题
    vue-element-template 本地使用proxy解决跨域问题
    已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: SSL Provider, error: 0
    系统还未初始化,还不能审核期间以后的单据
    金蝶初始化问题
    jqueryMobile 动态添加元素,展示刷新视图方法
    链接数据库 远程事务的处理方式
  • 原文地址:https://www.cnblogs.com/chunqiu666/p/12704708.html
Copyright © 2020-2023  润新知