Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 254|回复: 0

[默认分类] linux学习第二周;文件命令与处理文本文件三剑客

[复制链接]
  • TA的每日心情
    开心
    2021-12-13 21:45
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2018-3-19 09:14:06 | 显示全部楼层 |阅读模式

    cat file # 查看file内容


    head -n number  file # 取文件前面number行


    tail -n number  file # 取文件后面number行


    tail -f file # 实时观看file文件变化


    tr " 1"  "2 " #将内容1替换成内容2 例子:tr "\n" "空格" 即将竖行打印改为横行打印


    tr -s  " " # 缩进空格


    rev # 将文件反向打印


     


     


    wc file # 显示文件行数、字符数和字节数


    hexdump # 二进制显示文件结果


     


    sort # 排序,默认按数字字母排序


    sort -nr # 倒序排列


    sort -R #随机排列


    uniq -c # 显示文件中每行重复的次数 (连续且完全相同才算重复)


    uniq -d # 仅显示重复过的行


    uniq -u # 仅显示不曾重复的行


     


     


    取access_log文件里登陆次数前十的ip地址:cut -d" " -f1 access_log|sort|uniq -c|sort -nr


     


     


     


    linux文本处理三大工具


    grep    sed   awk


     


    grep:


    grep key file # 打印file文件中含key(如:关键词为root,含rooter单词的行也打印))关键字的行


    grep -v key file # 打印不包含key的行


    grep -w key file # 包含key(整个单词,例如:关键词为root,含rooter单词的行不打印)的行


    grep -o key file # 查找并只打印出关键字


    grep -n  key file # 打印搜索到的行并显示其行号


     


     


    sed     option     “地址命令”   file


    sed -n “地址命令”   file # (加 -n 只打印符合地址的行)


    sed "s/位置1/位置2/g" file #搜索file文件中所有位置1替换为位置2(g为全局替换)


     


     


    awk:


    awk  [options]   "pattern{action statements;..}" file # awk用法一般格式


    awk  [options]   "BEGIN{ action;… } pattern{ action;… } END{ action;… }"  file 


    BEGIN{action;...} # 文件先用该语句处理后再传入pattern中


    END{ action;… }  # 文件经BEGIN{ action;… } pattern{ action;… }处理后的结果再用END语句处理


    BEGIN{action;...}和END{ action;… } 是可选的,pattern{ action;… }是必须要有的


    一般action都为print或printf(printf支持格式化输出打印)


    -F 指明输入时用到的字段分隔符


    -v   var=value: 自定义变量


    FS    #  输入字段分隔符,默认为空白字符 


             例子:awk -v FS=":"  "{print $1,FS,$3}’ /etc/passwd


    OFS #  输出字段分隔符,默认为空白字符 


              例子:awk  -v FS=‘:’  -v OFS=‘:’ "{print $1,$3,$7}’ /etc/passwd


    条件表达式(三目表达式):selector?if-true-expression:if-false-expression(如果selector为true时执行?后语句;如果selector为false时执行:后语句)


              例子: awk -F: "{$3>=1000?usertype="Common User":usertype="Sysadmin or SysUser";printf "%15s:%-s\n",$1,usertype}" /etc/passwd


    NF #字段;例子:awk -F: "{print NF}"  /etc/passwd (打印以:作为字段分隔符每个记录共分为几个字段)


    NR #记录数; 默认文件以换行符(\n=回车)为一条记录

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-17 05:30 , Processed in 0.374246 second(s), 37 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表