find ./ -name "*txt" -maxdepth 1 -type f -mtime -2 -exec mv {} ./bbb.txt \;

这条命令表示找当前目录(-maxdepth 1,没这条是递归找当前目录的所有子目录)且是文件的(-type f)且两天以内创建的(-mtime -2,如果是+2表示两天前创建的,还可以-mmin以分钟为单位),且名字是匹配*txt(linux通配符和regex不同,linux自带的特殊字符

必须在""内)然后将这些文件执行mv命令,第一个参数是{}它来自前面找到的所有文件,第二个参数是要移动的目标位置(如果是目录则只是移动,如果是文件则表示同时要改名),最后的\;是find执行exec的固定格式不用管;

find是通过查找文件名来找出文件

grep 可以通过-v搜索出匹配的行的其他行,如grep -v '^$' log.log表示搜索出文件里所有的非空行;还可以多次grep来串行过滤;

grep是搜索文件内容(后面还加了xargs则会导致无法串行的grep过滤,这个时候就要用到awk作为后面grep参数的提供者;但是如果只是普通的先过滤ip,再过滤是否登录这样的场景可以连续用两个grep)

awk 也是搜索文件内容,但它可以以对列进行排除显示(grep是显示行),如awk -F ':' '{print $1}' log.log表示将文件中以:分割的字符串拆分成N列,以下标1开始,这里打印第一列;

awk可以一次性指定多个分隔符,如awf -F '[-, ]'就指定了-,和空格三个分隔符;awk会保留空列这和java的split是不一样的,java如[a如果以[为分隔符,那么只有一列,而awk则是有两列,且[a[[是会有5列;

awk也是支持正则搜索的,比如 awk -F '[-,]' '/^root/{print $0}'就用到了正则,表示搜索以root开头的行,并打印整行($0)

而且他的-F参数也支持正则如 awk -F '[/]+'表示以/或//或///。。。这些作为分隔符来分隔(对url很有效),且总以最长的为准;

awk的数组是直接 awk -F '[/]+' '{map[$2]++} END {for(key in map) print key,map[key]}' 1.txt,这个语法有点怪(END必须是大写),这个map其实更应该理解为HashMap,$2是key,而value则是相同key的行数,这里对key起到了一个distinct的作用;

sed读和sad一样,它是对输出的内容修改后显示,但是不会修改源文件,如sed 's/aaa/bbb/' log.log表示显示文件内容之前对显示的内容是aaa的修改为bbb进行显示(s是替换,p表示打印,这里不能加p否则会重复打印),这个可以用#代替/号

sed -n '...'的-n表示安静模式,需要结合p来实现只有被处理过的那行才显示,如果没有p动作那么即便某行有被处理也不会显示,如果没有-n却有p动作那么将会有重复显示,其实就可以理解为sed提供了一个简单的前置grep,不用先grep出要处理的行,然后再通过管道符sed;

sed分为参数和动作,-n是参数向s、p、a之类的是动作,而动作又分前置和后置,s是前置,因为它要求将第一个/../的参数以第二个/../的来替换,而c取代的意思是/a/c mm表示将a用mm来取代(c是把整行都替换了,而s是替换行里选择的部分);

sed如果要替换多个字符串不是在前面的参数上加上如's/[,\-]//',而是's/,//;s/-//'用分号来分隔(分号后面可以接空格,此空格只是美观作用),但是sed是支持正则表达式的,比如's/\d{5}//'表示将连续的5个数字替换为空,但是如果是一行里不连续的替换则只能用;来分别写了;

还有uniq命令如uniq -i表示对行进行忽略大小写模式的distinct操作;

sort表示对行进行字典排序,加-u也可以同时进行uniq操作,加-r可以降序,-n表示以数值序排序(10比2前,如果是字典序则2比10前)

而如果要实现以某列为排序依据可以-t ' ' -k 2表示以空格作为列依据,然后以第二列(k是key的意思)作为排序依据进行排序;

如果要将管道符前面的结果作为grep搜索的pattern则可以用 grep -oP '\[.{3}\](?=\ ip=1.1.1.1)' | xargs -r -I % /bin/grep "\[%\]" bbb.txt

一般情况下前面的搜索结果只能作为grep的要搜索的文件的参数而不能是pattern,这里通过xargs -r -I %实现了作为pattern

Linux四剑客find/grep/awk/sed的更多相关文章

  1. Linux查找命令:grep,awk,sed

    grep grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具 ...

  2. linux四剑客-grep/find/sed/awk/详解-技术流ken

    四剑客简介 相信接触过linux的大家应该都学过或者听过四剑客,即sed,grep,find,awk,有人对其望而生畏,有人对其爱不释手.参数太多,变化形式太多,使用超级灵活,让一部分人难以适从继而望 ...

  3. Linux基础-正则表达式整理---------------grep、sed、awk

    目录:    Ⅰ:正则表达式    Ⅱ:作业 Ⅰ:正则表达式 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则. 在lin ...

  4. Linux三剑客-grep || awk || sed

    grep是一个强大的文本搜索工具 命令格式: grep [option] pattren file -a  将二进制文档以文本方式处理 -c  计算找到的符合行的次数 -i  忽略大小写 -n  顺便 ...

  5. Linux 文本处理工具grep,sed,awk

    grep.sed和awk都是文本处理工具,虽然都是文本处理工具单却都有各自的优缺点,一种文本处理命令是不能被另一个完全替换的,否则也不会出现三个文本处理命令了.只不过,相比较而言,sed和awk功能更 ...

  6. Linux 命令之 linux 四剑客

    Linux命令-- 四剑客 一:Linux命令 之 AWK 符号:^ 开头 $ 结尾 awk 是一种处理文本的语言,一个强大的文本分析命令! 1:提取文件中的每行的第二个 提取前文本中内容为  命令: ...

  7. 【Linux】linux中文本操作利器grep,awk,sed

    grep命令 grep(global search regular expression)是一种强大的文本搜索工具,它可以使用正则表达式搜索文本,并把匹配的行打印出来.平时搜索文本中内容的时候是非常方 ...

  8. 【linux系统】命令学习(五)linux三剑客 grep \ awk \ sed

    grep----基于正则表达式查找满足条件的行 1.内容检索 获取行 grep pattern file 获取内容 grep -o pattern file 获取上下文grep -A -B -C pa ...

  9. linux shell grep/awk/sed 匹配tab

    处理文件的命令实在是多, sed, awk, grep等.遇到了需要匹配tab的情况, 记录一下. 例子如下:找出文本中第一列是1的行. 文本a 解法1 : 直接使用正则表达式, ^表示开头, \t表 ...

随机推荐

  1. certificate verify failed (https://gems.ruby-china.org/specs.4.8.gz)

    redis集群配置中 >gem sources -a https://ruby.taobao.org/ Error fetching https://gems.ruby-china.org/: ...

  2. YII2中分页组件的使用

    当数据过多,无法一页显示时,我们经常会用到分页组件,YII2中已经帮我们封装好了分页组件. 首先我们创建操作数据表的AR模型: <?php namespace app\models; use y ...

  3. win10 x64中 windbg x64 安装配置符号库

    根据系统安装好x64版本,我的系统是win10 x64 ; windbg下载地址 https://developer.microsoft.com/zh-cn/windows/hardware/down ...

  4. hdu 2066 ( 最短路) Floyd & Dijkstra & Spfa

    http://acm.hdu.edu.cn/showproblem.php?pid=2066 今天复习了一下最短路和最小生成树,发现居然闹了个大笑话-----我居然一直写的是Floyd,但我自己一直以 ...

  5. tensorflow.reshap(tensor,shape,name)的使用说明

    tensorflow as tf tf.reshape(tensor, shape, name=None) reshape作用是将tensor变换为指定shape的形式. 其中shape为一个列表形式 ...

  6. N! (大数,优化)

    Problem Description 输出N的阶乘.(注意时间限制150ms&&注意不能打表后输出) 打表的定义:在本地主机预先计算出了每个值对应的答案,并把输入和输出的映射直接写入 ...

  7. egg 为企业级框架和应用而生, 阿里出品

    https://eggjs.org/zh-cn/intro/ egg 是什么? egg 为企业级框架和应用而生,我们希望由 egg 孕育出更多上层框架,帮助开发团队和开发人员降低开发和维护成本. 设计 ...

  8. mfc获取exe的版本信息

    CString GetFileVersion(const CString& sTargetFileName){ DWORD nInfoSize = 0, dwHandle = 0; nInfo ...

  9. 爬虫初窥day2:正则

    正则在线测试 http://tool.oschina.net/regex https://www.regexpal.com/ http://tool.chinaz.com/regex exp1:筛选所 ...

  10. 最新Dashboard设计实例、技巧和资源集锦,视觉和功能两不误,妥妥的!

    Dashboard设计,尽管设计师们叫法各不相同(例如:“数据面板设计”, “控制面板设计”, “仪表盘设计”或“后台界面设计”等等).但,此类设计的最终目都是力求以最直观.最简洁的方式呈现各种信息和 ...