30天内的文件打包

find ./test_log -type f -mtime -30|xargs tar -cvf test_log.tar.gz

find,文件+超过7天+超过1M的+按日期为文件名压缩

注意: exec没-i, xargs如果有引用需要加上-i

find xargs
-type
-name
-size
-mtime
find /tmp/ -type f -mtime +7 -size +1M|xargs -i tar -zcvf access.log.tar.gz {}
find /tmp/ -type f -mtime +7 -size +1M -exec tar -zcvf access.log.tar.gz {} \; - 文件+超过7天+超过1M的+按日期为文件名压缩
find /tmp/ -type f -mtime +7 -size +1M -exec tar -zcvf access_$(date +%F -d -1day).log.tar.gz {} \;

find+sed批量查找替换

find . -type f -name '*.md'|xargs sed -i 's#maotai#maomao#g'

find删除

find . -type f -name '*.md'|xargs -i rm -f {}

find . -type f -name '*.md' -exec rm -f {} \;
1,-exec
2,-exec没-i
3,-exec后面有 \;

sed和awk的2个绝招

  • sed后向引用
  • awk多分割过滤

过滤ip

- sed实现(后向引用)
ifconfig eth0|sed -n '2p'|sed -n 's#^.*inet ##gp'|sed -n 's# ne.*$##gp'
ifconfig eth0|sed -nr '2s#^.*net (.*) net.*$#\1#gp' - awk实现(多分割)
[root@n1 test]# ifconfig eth0|awk -F '[ ]+' 'NR ==2 {print $3}'
192.168.14.11

过滤文件权限

[root@n1 test]# ll test.md |awk '{print $1}'|tr 'rwx-' '4210'|awk -F '' '{print $2+$3+$4""$5+$6+$7""$8+$9+$10}'
644 - sed实现(后向引用)
[root@n1 test]# stat test.md |sed -nr 's#^.*\(0(.*)\/-.*$#\1#gp'
644 - awk实现(多分割)
[root@n1 test]# stat test.md|awk -F '[(/]' 'NR==4 {print $2}'
0644

过滤/etc/passwd的20-30行

  • 使用强悍的sed
  • 使用awk的条件

sed过滤行

sed -n '10p' /etc/passwd
sed -n '10,20p' /etc/passwd

awk条件过滤行

- 方式1: 通过NR来控制
cat /etc/passwd|awk 'NR>10 && NR <20'
cat /etc/passwd|awk -F ':' 'NR>10 && NR<20 {print $1}'
注:NR在{}外 - 方式2:通过if语句
cat /etc/passwd|awk -F ':' '{if($3>3) print $3}'
注: 这种if在{}里

awk求和

[root@localhost ~]# awk -F ':' '{(s+=$3)}; END {print s}' /etc/passwd
2891

产生随机数

- head截取(不换行)
[root@n1 ~]# echo $RANDOM|md5sum|head -c 10
7f30eab068[root@n1 ~]# - cut截取
[root@n1 ~]# echo $RANDOM|md5sum|cut -c 1-10
efc85e6acd

[svc]find+xargs/sed&sed后向引用+awk多匹配符+过滤行绝招总结&&产生随机数的更多相关文章

  1. [svc]find+xargs/exec重命名文件后缀&文件操作工具小结

    30天内的文件打包 find ./test_log -type f -mtime -30|xargs tar -cvf test_log.tar.gz awk运算-解决企业统计pv/ip问题 find ...

  2. 【shell】sed后向引用替换文本

    要求如下: 原文 <server name="92服" port="10092" os="android" hidden=" ...

  3. [svc]sed&awk过滤行及sed常用例子

    - sed过滤行 sed '2p' sed '2,5p' sed '2p;3p;4p' - awk过滤行 awk 'NR==2' awk 'NR>=2 && NR <=3' ...

  4. 文本替换sed+字段处理cut,join+awk重新编排字段

    [1]sed工具(Stream Editor)--流编辑器 sed 本身也是一个管线(管道)命令,可以分析 standard input 的啦! 而且 sed 还可以将数据进行取代.删除.新增.截取特 ...

  5. python正则表达式--分组、后向引用、前(后)向断言

    无名.有名分组 (1)正则表达式—无名分组 从正则表 达式的左边开始看,看到的第一个左括号“(”表示表示第一个分组,第二个表示第二个分组, 依次类推. 需要注意的是,有一个隐含的全局分组(就是索引号为 ...

  6. maven 发布快照版本后的引用

    使用nexus发布快照版本后, 引用项目问题 必须 <scope>test</scope> 才能引用快照.releases 不受此限制

  7. $python正则表达式系列(4)——分组和后向引用

    分组,即分组匹配,也称为捕获组,是正则中的一种比较重要的匹配方式.此外后向引用和分组相结合,可以写出很多复杂匹配场景的正则. 1. 分组 分组的方法:将子表达式用小括号括起来,如:(exp),表示匹配 ...

  8. python正则表达式(8)--分组、后向引用、前(后)向断言

    无名.有名分组 (1)正则表达式—无名分组 从正则表 达式的左边开始看,看到的第一个左括号“(”表示表示第一个分组,第二个表示第二个分组, 依次类推. 需要注意的是,有一个隐含的全局分组(就是索引号为 ...

  9. 删除datatable的行后,出现“不能通过已删除的行访问该行的信息”的错误,即DeletedRowInaccessibleException

    删除datatable的行后,出现“不能通过已删除的行访问该行的信息”的错误 =========================================================== 采 ...

随机推荐

  1. Linux学习之文件特殊权限详解(SetUID、SetGID、Sticky BIT)(十一)

    Linux学习之文件特殊权限详解(SetUID.SetGID.Sticky BIT) 目录 SetUID SetGID Sticky BIT SetUID SetUID简介 只有可以执行的二进制程序和 ...

  2. 2019最新最全HUSTOJ本地及云端服务器搭建(基于腾讯云服务器)

    在刚接触ACM的时候,对于那些在线测评的网站很感兴趣,就在网上搜索了一下,在Github上发现了一个有趣的项目,然后在 Github 上获取 了HUST OJ 的开源项目代码,根据网上的教程踩了无数的 ...

  3. Android系统下用js自定义gesture事件(仿ios实现移动端事件一致)

    .katex { display: inline-block; text-align: initial; } .katex { font-family: Consolas, Inconsolata, ...

  4. AGC027 D - Modulo Matrix 构造

    目录 题目链接 题解 代码 题目链接 AGC027 D - Modulo Matrix 题解 从第左上角第一个点开始染色,相邻不同色,染法唯一 那么一个点的四周与他不同色,我们另这个点比四周都大,那么 ...

  5. 使用time模块,转化时间格式

    import time ''' 时间戳:表示1970年开始计算的偏移量.我们运用type(时间戳)是float类型 结构化时间:9个元素组成的数组 格式化时间字符串 ''' '''获取当前时间戳''' ...

  6. 设置Sublime Text 3的光标样式

    升级了Sublime Text 3,结果光标变成了这个样子,非常不习惯: 查了文档http://www.sublimetext.com/3 ,Build 3059中得描述: Added setting ...

  7. bzoj 1095 括号序列求两点距离

    大致题意: 给一棵树,每个节点最开始都是黑色,有两种操作,1.询问树中相距最远的一对黑点的距离 2.反转一个节点的颜色 一种做法: 建立出树的括号序列,类似这样: [A[B][C]],所以长度为3*n ...

  8. java计算某个坐标是否在范围内

    java电子围栏 圆.矩形.多边形算法 http://blog.csdn.net/deepak192/article/details/79402694/ java-经纬度有关的计算(半径内的经纬度范围 ...

  9. Android native thread相关

    几个主要的source code路径: /system/core/include/utils/threads.h /system/core/include/utils/Thread.h /system ...

  10. 关于在win8系统下用VMware 9.0装系统导致物理机不断重启的解决办法

    一.问题描述 前段时间将操作系统换成了Win8,安装上VMware 9.0英文版.然后在VMware中安装centos系统,结果每次到安装系统的时候,物理机系统就会莫名其妙地自动重启,毫无征兆地出现, ...