1.find实战

# 删除指定文件(三种方法)
find /data/ -type f -name "*.log" -exec rm {} \;
find /data/ -type f -name "*.log" | xargs rm -f
rm -f `find /data/ -type f -name "*.log"` # 删除修改时间在30天之前的文件,+30:30天之前;30:第三十天;-30:最近30天
find /data/ -type f -name "*log" -mtime +30 | xargs rm -f # 查找/data目录下7天以前的,以log结尾的,大于1M的文件,移动到/tmp目录下
find /data/ -type f -name "*.log" -size +1M -mtime +7 -exec mv {} /tmp/ \; # 将某一目录下的所有目标文件,替换成指定内容,xargs的原理是将传过来的结果变成一行
find /data/ -type f -name "*.sh" | xargs sed -i "s#oldboy#oldgirl#g"
sed -i"s#oldgirl#oldboy#g" `find /data/ -type f -name "*.sh"` # -a:并集;-o:交集
find /data/ -type f -name "test.sh" -o -name "hehe.sh" # 删除当前目录下除了oldgirl.txt的所有文件
find . -type f ! -name oldgirl.txt | xargs \rm -f # 找出当前目录下的所有一级目录
find . -maxdepth 1 -type d ! -name "."
tree -d /data # 查看目录结构
tree -Ld 1 /data # 只看一级目录
# 这三个的inode是一样的,3指的是硬链接个数
ls -ldi /data/old/ /data/old/. /data/old/ett/..

2.grep实战

# grep限定单词边界
cat oldboy.txt
oldboy hello word
oldboy1 hello word
# 打印符合条件的行,-n显示行号
grep -n "oldboy" oldboy.txt
1:oldboy hello word
2:oldboy1 hello word # 只匹配有这个单词的行
grep -n "\boldboy\b" oldboy.txt
1:oldboy hello word
# -w参数是按单词搜索,只匹配有这个单词的行
grep -w "oldboy" oldboy.txt
oldboy hello word

3.-e多点编辑

# 一条sed命令,删除/etc/passwd第三行到末尾的数据,并把bash替换为blueshell
sed -e '3,$d' -e 's#bash#blueshell#' /etc/passwd
# 用-e参数显示一下结果,然后用-i直接去修改
sed -i '3,$d;s#bash#blueshell#' passwd.txt # 利用sed将hehe.txt内每一行结尾的.则换成!
sed -i 's#\.$#\!#g' hehe.txt
sed -r 's#!$#.#g' hehe.txt
# 利用 sed 直接在 hehe.txt 最后一行加入"# This is a test"
sed -i '$a # This is a test' hehe.txt

4.删除第三行到末尾的行,并且将10修改为01(四种方法)

cat person.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO 方法一:sed '3,$d' person.txt|sed 's#10#01#g'
方法二:sed -e '3,$d' -e 's#10#01#g' person.txt
方法三(此方法最常用):sed '3,$d;s#10#01#g' person.txt
方法四:sed -f person.sed person.txt
cat person.sed
3,$d
s#10#01#g

5.sed跟单引号、双引号的结合

cat test.txt
a
b
a x=a
y=b
# 一个文本test.txt有三行内容;然后赋值变量:x=a、y=b,对文本进行内容替换
sed s#$x#$y#g test.txt # 相当于
sed "s#$x#$y#g" test.txt
# 用单引号不行
sed 's#$x#$y#g' test.txt
# eval可以先解析变量
eval sed 's#$x#$y#g' test.txt

6.sed处理开机自启服务

# 基础正则遇到括号需要转义,-r表示扩展正则;
# grep -E参数相当于egrep,也是扩展正则的意思.
chkconfig --list | grep 3:on | egrep -v "crond|sshd|network|rsyslog|sysstat" |
awk '{print "chkconfig",$1,"off"}' | bash
chkconfig --list | grep "3:on"|grep -vE "sshd|crond|network|rsyslog|sysstat"|
awk '{print $1}'|sed -r 's#(^.*)#chkconfig \1 off#g'|bash

7.批量修改文件名

sed '1,3s#C#--&--#g' person.txt
# 此处的&就是C,即 & 就是两个##之间匹配到的内容
touch stu_102999_{1..5}_finished.jpg
ls *jpg | sed -r 's#(^.*)_finished.*#mv & \1.jpg#g' | bash
# rename命令挺强大
rename "_102999" "hehe" *jpg

8.awk、sed取IP地址

# ^.*dr:匹配的是--以任意字符开头,到dr:
# 两个空格B.*$,匹配到结尾,括号中的内容通过后向引用取到,即ip地址
ifconfig eth0 | sed -nr '/inet addr/s#^.*dr:(.*) B.*$#\1#gp'
ifconfig eth0 | awk -F "[ :]+" 'NR==2{print $4}' # 删除空行(awk只是打印了空行行号)
sed -i '/^$/d' oldboy.txt
awk '/^$/ {print NR}' oldboy.txt

9.如何取得一个文件的权限数字,如:644

ls -l a.txt | cut -c2-10 | tr "rwx-" "4210" | awk -F "" '{print $1+$2+$3$4+$5+$6$7+$8+$9}'
stat a.txt | sed -nr 's#^.*\(0(.*)/-.*$#\1#gp'
# awk的分隔符一般是要取的那个元素的前后两个
stat a.txt | awk -F "[0/]" 'NR==4 {print$2}'
stat -c %a a.txt

10.网站被攻击,所有文件都被加上了一行js,统一删除被加进去的内容

# 模拟环境
find . -type f | xargs sed -i '1 i <script>qweqweqwe</script>'
# 一条命令修改内容,另一种方法:用备份去还原
find . -type f | xargs sed -ir 's#<script>.*</script>##g'
# -n:不换行
echo -n "oldboy";echo "oldboy"
# -e:支持转义
echo -ne "oldboy\t";echo "oldboy"

sed实战、find实战、grep实战的更多相关文章

  1. (转)不看绝对后悔的Linux三剑客之grep实战精讲

    不看绝对后悔的Linux三剑客之grep实战精讲 原文:http://blog.51cto.com/hujiangtao/1923675 https://www.cnblogs.com/peida/a ...

  2. 项目实战——企业级Zabbix监控实战(一)

    项目实战--企业级Zabbix监控实战 实验一:Zabbix监控的搭建 1.实验准备 centos系统服务器3台. 一台作为监控服务器, 两台台作为被监控节点, 配置好yum源. 防火墙关闭. 各节点 ...

  3. Spark RDD/Core 编程 API入门系列 之rdd实战(rdd基本操作实战及transformation和action流程图)(源码)(三)

    本博文的主要内容是: 1.rdd基本操作实战 2.transformation和action流程图 3.典型的transformation和action RDD有3种操作: 1.  Trandform ...

  4. 整理grep实战文本搜索过滤技巧

    一:grep的简介: 文本搜索工具,根据用户指定的文本模式对目标文件进行逐行搜索,显示能够被模式所匹配到的行.配合正则表达式的使用可以实现强大的文本处理.下面一一说明正则的例子. 二:文本处理工具分类 ...

  5. 深入浅出Hadoop Mahout数据挖掘实战(算法分析、项目实战、中文分词技术)

    Mahout简介 Mahout 是 Apache Software Foundation(ASF) 旗下的一个开源项目, 提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建 ...

  6. kubernetes云平台管理实战: 故障自愈实战(四)

    一.创建实验文件 [root@k8s-master ~]# cat myweb-rc.yml apiVersion: v1 kind: ReplicationController metadata: ...

  7. 深度学习之PyTorch实战(3)——实战手写数字识别

    上一节,我们已经学会了基于PyTorch深度学习框架高效,快捷的搭建一个神经网络,并对模型进行训练和对参数进行优化的方法,接下来让我们牛刀小试,基于PyTorch框架使用神经网络来解决一个关于手写数字 ...

  8. 大数据开发实战:Hive优化实战3-大表join大表优化

    5.大表join大表优化 如果Hive优化实战2中mapjoin中小表dim_seller很大呢?比如超过了1GB大小?这种就是大表join大表的问题.首先引入一个具体的问题场景,然后基于此介绍各自优 ...

  9. 大数据开发实战:Hive优化实战2-大表join小表优化

    4.大表join小表优化 和join相关的优化主要分为mapjoin可以解决的优化(即大表join小表)和mapjoin无法解决的优化(即大表join大表),前者相对容易解决,后者较难,比较麻烦. 首 ...

随机推荐

  1. 如何封装RESTful Web Service

    所谓Web Service是一个平台独立的,低耦合的,自包含的.可编程的Web应用程序,有了Web Service异构系统之间就可以通过XML或JSON来交换数据,这样就可以用于开发分布式的互操作的应 ...

  2. Python9-进程池-day38

    复习 # 信号量 from multiprocessing import Semaphore # 用锁的原理实现的,内置了一个计数器 # 在同一个事件,只能有指定数量的进程执行某一段被控制住的代码 # ...

  3. selenium2等待元素加载

    1.硬性等待 Thread.sleep(8000); 所谓的硬性等待就是,执行完相应操作就等待我设置的8s.无论网速快与慢,网速快的话,也许5s就打开网页了,可是程序必须接着等待剩下的3秒. 网速慢的 ...

  4. BZOJ 3351: [ioi2009]Regions

    对于一个询问(x,y)对y出现次数分类,若<=lim,在儿子处统计答案,若>lim则y的种类肯定<lim,在祖先处统计(仿佛要去重?但是没去重也过了,那个时限仿佛怎么做都能过) #i ...

  5. luogu2865 [USACO06NOV]路障Roadblocks 次短路

    注意:如果是这么个写法,堆数组要开成n+m的. 为什么呢?设想一下从1到2有m条长度递减的路,这岂不是要入队m次-- #include <algorithm> #include <i ...

  6. 基于JQuery的WEB套打设计器jatoolsPrinter1.0

    开发web套打应用时,如快递单打印,一般要经过以下步骤:1. 扫描快递单据,保存成一个图片文件2. 将底图作成<img>3. 在<img>上放置打印项,试着打印到打印机,观察有 ...

  7. 使用spyder3调试python程序

    Ctrl+F5 以Debug模式运行文件 在debug之前记得用%reset 指令清空一下ipython工作空间中的变量,以免影响debug中变量值的查看 无论你是否打断点,都会在第一行语句执行之前中 ...

  8. javascript 内置日期转换方法

    var d = new Date(); console.log(d); // 输出:Mon Nov 04 2013 21:50:33 GMT+0800 (中国标准时间) console.log(d.t ...

  9. 深度理解STL之map、set

    课程设计做了这个一直没有整理(搬运 set算是关键字和相同的特殊map set应该更加被强调理解为“集合”,而集合所涉及的操作并.交.差等,即STL提供的如交集set_intersection().并 ...

  10. ICPC南京补题

    由于缺的题目比较多,竟然高达3题,所以再写一篇补题的博客 Lpl and Energy-saving Lamps During tea-drinking, princess, amongst othe ...