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. Mysql索引为什么用B+树而不用B-树

    先从数据结构的角度来看 我们知道B-树和B+树最重要的一个区别就是B+树只有叶节点存放数据,其余节点用来索引,而B-树是每个索引节点都会有Data域. 这就决定了B+树更适合用来存储外部数据,也就是所 ...

  2. Socket进程通信机制

    1.Socket通常称为“套接字”,用于描述IP地址和端口,是一个通信链的句柄. 2.应用程序通过套接字向网络发出请求或者应答网络请求. 3.Socket既不是一个程序,也不是一种协议,其只是操作系统 ...

  3. mac配置php7运行环境

    不用mac自带的apache和php,安装自己想要的版本.配置过程一直采坑,需要有闲时间和好的心理素质才行,哈哈,因为网上很教程都有纰漏之处,所以先把采坑无数后发现的个人认为最好的一个教程链接放在这里 ...

  4. RAID与其在Linux上的实现

    参考资料: RAID data striping spanned volume 从raid0到raid7,raid阵列各级别介绍 本文所使用的图片来源于互联网,若有侵权,烦请联系,谢谢. 简介 RAI ...

  5. SqlDataAdapter更新数据

    插入.更新和删除的排序 在许多情况下,以何种顺序向数据源发送通过 DataSet 作出的更改是相当重要的. 例如,如果已更新现有行的主键值并且添加了具有新主键值的新行, 则务必要在处理插入之前处理更新 ...

  6. C++中的智能指针

    一.动态内存管理 通常我们创建动态内存的时候,需要自己管理好内存,也就是说,new出来的对象一定要注意释放掉.下面通过例子可以看到这个问题所在: struct BBE{ int X; int Y; v ...

  7. Linux查看日志定位问题

    1.定位错误关键字所在行数 cat -n test.log |grep "查找的错误关键字" 2.得到错误关键字所在行号(假设为第500行),查询错误关键字前后100行数据 cat ...

  8. mysql安装后不是内部或外部命令解决

    在环境变量中配置mysql的bin 怎么找到bin目录,在管理工具,服务,常规选项卡下找到 双击mysql后,常规选项卡下的路径就是bin的路径,然后把该路径配置到环境变量中,即可,然后net sta ...

  9. 使用 IntraWeb (34) - TIWAJAXNotifier

    在异步事件中, 可以通过 TIWAJAXNotifier 发出一个通知(通过其 Notify 方法), 该通知会激发其 OnNotify 事件. 这一般用在: 当一个异步事件完成后, 立即处理随后的事 ...

  10. 让你提升命令行效率的 Bash 快捷键 [完整版]

    转自:http://linuxtoy.org/archives/bash-shortcuts.html 生活在 Bash shell 中,熟记以下快捷键,将极大的提高你的命令行操作效率. 大部分对其他 ...