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. Linux安装OpenCV

    sudo apt-get update sudo apt-get install git git clone https://github.com/jayrambhia/Install-OpenCV ...

  2. arm的开发工具

    网上有free的ide可以开发arm cortex的芯片,可以参考List of ARM Cortex-M development tools,Wikipedia,里面有emIDE,embitz等,虽 ...

  3. spring+struts2+hibernate框架依赖pom.xml

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  4. C指针问题

    <!DOCTYPE html> 多级c指针传值问题 /* GitHub stylesheet for MarkdownPad (http://markdownpad.com) / / Au ...

  5. Leetcode 450.删除二叉搜索树的节点

    删除二叉搜索树的节点 给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变.返回二叉搜索树(有可能被更新)的根节点的引用. 一般来 ...

  6. Python 开启线程的2中方式,线程VS进程(守护线程、互斥锁)

    知识点一: 进程:资源单位 线程:才是CPU的执行单位 进程的运行: 开一个进程就意味着开一个内存空间,存数据用,产生的数据往里面丢 线程的运行: 代码的运行过程就相当于运行了一个线程 辅助理解:一座 ...

  7. Educational Codeforces Round 37 (Rated for Div. 2)

    我的代码应该不会被hack,立个flag A. Water The Garden time limit per test 1 second memory limit per test 256 mega ...

  8. 使用sami生成文档

    从composer安装sami $ composer require sami/sami composer自动配置完以后,可以先测试一下是否安装成功.只要不带参数的运行一下sami,就会知道结果. $ ...

  9. SpringMVC对于跨域访问的支持

    原文地址:http://docs.spring.io/spring/docs/5.0.0.RC2/spring-framework-reference/web.html#mvc-introductio ...

  10. 【bzoj4816】[Sdoi2017]数字表格 莫比乌斯反演

    题目描述 Doris刚刚学习了fibonacci数列.用f[i]表示数列的第i项,那么 f[0]=0 f[1]=1 f[n]=f[n-1]+f[n-2],n>=2 Doris用老师的超级计算机生 ...