linux 基础命令学习---find, sed

【SHELL】exec命令 exec作用 用处:可以对shell中执行的命令的处理结果,再进行二次、三次、四次处理。 find . -name "*.xml" -exec grep -l -E '<componentName>cbb</componentName>|<componentName>bp</componentName>' {} \; find . -name "*.xml" -exec grep -l -E 'ACE-TAOCMC' {} \; linux中的 exec命令, 阅读详情

文本流之于Unix,犹如扭动的丝带,将Unix下的各种小工具组合在一起. 这是unix的哲学基础之一的体现:

"组合原则:设计时考虑拼接组合". 常用工具find, sed的配合使用就是这种组合的体现.

先看find 命令:

1. find 命令的一般形式为:

find pathname –options [-print –exec -ok...]

find的命令参数:

pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。tf
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' {  } /;,注意{   }和/;之间的空格。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

find的命令选项:

-name
按照文件名查找文件。
-perm
按照文件权限来查找文件。
-prune
使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。
-user
按照文件属主来查找文件。
-group
按照文件所属的组来查找文件。
-mtime -n +n
按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime 选项,但它们都和-m time选项。
-nogroup
查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。
-nouser
查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。
-newer file1 ! file2
查找更改时间比文件file1新但比文件file2旧的文件。
-type
查找某一类型的文件,诸如:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。
-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
-fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。
-mount:在查找文件时不跨越文件系统mount点。
-follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
-cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。

find命令的例子;


1、查找当前用户主目录下的所有文件:

下面两种方法都可以使用

$ find $HOME -print
$ find ~ -print


2、让当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件;

$ find . -type f -perm 644 -exec ls -l {  } /;


3、为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径;

$ find / -type f -size 0 -exec ls -l {  } /;


4、查找/var/logs目录中更改时间在7日以前的普通文件,并在删除之前询问它们;

$ find /var/logs -type f -mtime +7 -ok rm {  } /;


5、为了查找系统中所有属于root组的文件;

$find . -group root -exec ls -l {  } /;
-rw-r--r--    1 root     root          595 10月 31 01:09 ./fie1


6、find命令将删除当目录中访问时间在7日以来、含有数字后缀的admin.log文件。

该命令只检查三位数字,所以相应文件的后缀不要超过999。先建几个admin.log*的文件 ,才能使用下面这个命令

$ find . -name "admin.log[0-9][0-9][0-9]" -atime -7  -ok
rm {  } /;
< rm ... ./admin.log001 > ? n
< rm ... ./admin.log002 > ? n
< rm ... ./admin.log042 > ? n
< rm ... ./admin.log942 > ? n


7、为了查找当前文件系统中的所有目录并排序;

$ find . -type d | sort

  需求:把本目录下,包括子目录下的文件,把所有含有“/adm/images/c.gif”的地方替换为“/Admin/Images/c.gif”。

    步骤:找出文件,找到地方,替换。

    寻找命令:找到文件(find,ls),找到地方(grep),替换(sed)。

    现在需要做的,就是组合起来。

    查找资料,有前辈告诫:“find 命令是所有 Linux 命令中最有用的一个,同时也是最混乱的一个”,顿时奔溃。

    还好,发现find命令有个叫“-exec”的,很是强大:find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' {} /;,注意{}和/;之间的空格。

    个人理解:-exec参数中的“{}”是该参数前命令产生的结果的占位符。

    而且还可以有多个-exec参数,很是强大。基本上grep和sed都可以作为子命令在其中运行了。

    如此一来,可以使用以下命令列出需要替换的字符串所在的行了:

以下是代码片段:

find ./ -exec grep "/adm/images/c.gif" '{}' /;

    然后再使用一个-exec参数吧sed包含进来吧。

以下是代码片段:
find ./ -exec grep "/adm/images/c.gif" '{}' /; -exec sed -i .bak 's///adm//images//c.gif///Admin//Images//c.gif/g' {} /;

8. 重命名文件:

需要备份的文件找到之后,接下去要做的就是利用cp命令把这些文件复制到其他目录中去。但是这里还需要做的一件事情是在复制过去后需要把文件进行重命名,即在原来文件的后面加上.backup,以提醒用户这些是备份文件,不能够删除或者修改。要实现这个功能的话,就需要用到文件名的占位符号。如果利用cp命令复制文件后同时批量更改文件的名字,只需要使用 cp {} {}.backup即可。这里的{}符号就是文件名的占位符号。cp {} {}.backup这个命令的功能就是先把文件复制到一个特定的目录中,然后在对复制过去的每个文件进行重命名,后面都依次加上.backup内容。

为此要实现上面文件备份的需要,只需要使用命令

find /home/oracle –mtime 1 –exec cp {} /backup/{}.backup /;即可。

执行这个命令后,系统会在用户主目录下寻找所有修改时间少于1天的文件,并把找到的文件复制到/backup目录下。并在每一个原始文件后面增加一个扩展名.backup。最后的/;是一个固定格式必须要有。然后系统工程师只需要把这个命令加入到cron中,让操作系统在每天中午或者其他空闲的时间周期性执行这个命令即可。如此的话,操作系统就会自动对用户的文件进行备份,以防止文件意外损坏或者修改所造成的损失。

另外需要注意的是,在Linux操作系统中find命令只可以找到最近一天修改的文件。而在Linux操作系统中,还有mmin参数,这个参数是以分钟为单位,如可以找到那些最近4个小时或者1个小时之内修改过的文件,从而提高备份的频率。为此系统工程师可以根据用户的需要来调整文件备份的频率。不过笔者认为,一般情况下文件备份一天一次即可。

【Linux进阶】使用grep、find、sed以及awk进行文本操作 阅读详情

相关推荐

50个最常用的Unix/Linux命令

50个最常用的Unix/Linux命令 这篇文章中每个命令都有一些简单的示例说明它的用法,对于想学习Unix/Linux的人,这些命令基本上都是需要掌握的: tar grep find ssh sed awk vim diff ...

blotemj.blog.youkuaiyun.com 460

sed 替换_find结合sed查找替换等命令总结

致读者:点击上方 “程序员爱好社区” → 点击右上角“ ... ”→ 点选“设为星标★” 加上星标,就不会找不到我啦!sed文本流编辑[root@admin ~]echo 'I love linux' >test.txt[root@admin ~]cat test.txtsed把linux替换test s:替换 g:全局替换 #:分隔符,可以用/@等替换s:常说的查找并替换,...

weixin_39953481的博客 1006

CMOS的宽/长比、传输门与三态门、锁存器与触发器、简单版图、竞争与冒险

目录 1.CMOS的宽长比 2.传输门与三态门 传输门 三态门 3.锁存器与触发器 3.1RS锁存器[3] 3.2D锁存器 3.3D触发器 4.简单CMOS器件的版图 5.竞争与冒险 1.CMOS的宽长比 关于COMS原理及结构图可以参考[1]COMS原理及门电路设计. 栅在源漏方向的长度称作栅的长L,垂直方向称为栅的宽W,如图1中NMOS的版图。 图1 以MOS管...

king阿金 1万+

linux四剑客find、grep、sed、awk

find、grep、sed、awk、正则表达式详解

weixin_44783506的博客 1940

如何利用CN3791实现太阳能电池板对锂电池的高效充电管理

本文详细介绍了如何利用CN3791芯片实现太阳能电池板对锂电池的高效充电管理。CN3791集成了MPPT(最大功率点跟踪)功能,能智能调节太阳能板的输出,确保在不同光照条件下获得最大功率。文章涵盖芯片工作原理、外围电路设计、充电全过程管理及实际应用经验,帮助开发者优化太阳能充电系统效率。

weixin_33709219的博客 499

红米12C刷机避坑指南:NV数据损坏的修复与系统版本选择

本文提供了红米12C刷机过程中避免NV数据损坏的详细指南,涵盖系统版本选择、SP刷机工具使用和fastboot命令修复。重点分析了NV数据损坏的原因与表现,并给出通过工程固件和深度修复技巧解决基带未知、IMEI丢失等问题的实操方案,帮助用户安全完成刷机。

cuda7parallel的博客 1075

四剑客笔记1

find 主要用于查找文件名 ,要以 ;结束 固定格式 find .-name “.txt" -type d -mtime -1 |xargs cp{ }/tmp/ ; 查找一天以内以.txt结尾的文件 并复制到tmp下 注意 ;是固定格式 find .-name ".txt” -type f -mtime -1 -exec mv{ }/tmp/ ; 查找一天内的文件 并移动到tmp目录下 f...

weixin_44894262的博客 268

ThingsKit物联网平台产品管理之物模型

物模型是ThingsKit物联网平台为产品定义的数据模型,用于描述产品的功能。本文介绍物模型相关概念和使用限制。

云腾五洲官方博客 1174

如何高效学习Linux,Linux 下的这些高效指令,是你快速学习的神器

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux管理磁盘查看当前磁盘使用情况:df -h fdisk -l (查看所有的硬盘)服务器添加硬盘...

weixin_28192383的博客 101

使用pdfBox实现pdf转图片出现中文方块乱码 简单修改源码解决

参考文章 问题排查:使用pdfbox将pdf转image时STSong-Light字体中文乱码 pdfbox版本是2.0 日志中打印出类似这样的日志(例:Using fallback XXX for CID-keyed font STSong-Light),就说明系统没有安装STSong-Light字体,pdfbox使用XXX字体来替代了。如果出现方块,就说明没有这种字体,并且替代字体也没有,日志也有相应的其他提示。 正常操作就是安装缺失的 STSong-Light 字体,但是在网上搜到的都是 STSong

aji_csdn的博客 5266

Vue3 - 详细实现流程图编辑器可视化平台示例代码,打造前端web网页流程图在线编辑绘制操作展示,vue3自定义绘制流程图在页面上画流程图功能(提供各种操作按钮及节点控件,界面美观交互式流程图插件)

vue3,绘制流程图,在线流程图制作,在vue3中实现流程图,vue3做一个制作流程图的功能,vue3流程图组件,vue3流程图,流程图绘制展示,vue3流程图可视化在线编辑源码,基于VUE3的在线绘制流程图工具,vue3+logicflow流程图,绘制动态流程图并自定义节点和线,vue使用logicFlow绘制流程图,生成各种流程图图形可连接点移除,基于Vue的流程图组件,工作流程图,流程编辑器,vue3流程组件,vue-flow绘制流程图,绘制流程图示例demo,vue3 logicflow流程图使用教

🏆 前端领域优质创作者 9967

Linux运维入门及进阶全新经典视频-老男孩Linux第一部(下)-老男孩-专题视频课程

第3章:linux优化-命令-目录结构知识。

2401_83620959的博客 821

Playwright实战:打造绕过全维度前端反爬的无头浏览器爬虫(2026实战版)

Playwright绕过前端反爬的核心是模拟真实:真实的设备指纹、真实的行为轨迹、真实的网络请求;2025年前端反爬的核心检测维度是设备指纹+行为轨迹+网络请求,三者缺一不可;实战中需重点关注WebGL/Canvas指纹模拟、行为随机性、请求头完整性,这是绕过反爬的关键;性能优化需以“不触发反爬”为前提,优先选择浏览器复用、资源拦截,而非无限制并发。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2094

linux shell 学习

首先恭喜你,看了这个文章,推荐两本书,linux shell 脚本攻略, shell脚本学习指南  ^_^ 。免积分下载地址为:http://download.youkuaiyun.com/detail/vsooda/5583263 shell脚本学习指南大概很多人都看过,但是看完之后对于shell能干什么,可能并不十分清楚,而linux shell 脚本攻略则以一个个任务的形式,用脚本解决。  而且有详细

vsooda的专栏 5862

【数字IC刷题】华为海思数字IC笔试题(1)详细解析版

【数字IC刷题】华为海思数字IC笔试题(1)详细解析版

MoorePlus的博客 4223

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

最全Linux常见面试题_linux面试题,C C++面试题2024笔试

*more文件名 :**表示查看文件内容(类似于cat,只能显示一个文件名,并且可以一页一页显示方便查看)**less 文件名 :**表示打开文件查看(类似于vi、vim但是只能查看不能修改)**man 2 acct :**查看相关系统调用说明(这里是acct)**cat /etc/shells:**查看本机器etc支持的版本。**ls -lrt :**表示查看当前目录以及相关参数。**man 3 :**表示查看公共库函数。**man 2 :**表示查看系统调用。**man 指令:**表示查看用法。

2401_84976741的博客 745

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

linux学习第三周总结

linux学习第三周总结 学习linux的第三周,也是惊喜最多的一周,让我看到学linux并不是很枯燥,相反非常有趣,可玩性很多,但越深入越觉得可学习的地方有很多,也有非常多的不足,所以革命尚未成功,同志更需努力 同样来简单终结一下本周的重点,内容比较多,说要简单提一下,不做详解 一、shell脚本编程基础 内容:1. 编程基础 2. 脚本基本格式3. 变量4.运算5.条件测试6.条件判断...

weixin_34346099的博客 181

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

--static linux_Linux上,最常用的一批命令解析(10年精选)

小姐姐味道【ID:xjjdog】作者:十年架构,日百亿流量经验,与你分享。Linux这么多命令,通常会让初学者望而生畏。下面是我结合日常工作,以及在公司的内部培训中,针对对Linux不是很熟悉的同学,精选的一批必须要搞懂的命令集合。任何一个命令其实都是可以深入的,比如tail -f和tail -F的区别。我们不去关心,只使用最常见的示例来说明。本文不会教你具体的用法,那是抢man命令的饭碗。这只是...

cpongo10的博客~ 146

Linux实践datawhale组队学习打卡笔记Task3

本次Linux实践是Datawhale组织的组队学习 学习资料以及Linux运行环境由开源学习组织Datawhale提供 本次学习针对的对象: Linux不会操作,不知道文件目录创建、命令行等细节 Linux不知道如何运行代码,保存模型 目录Task3学习内容学习资料任务8:使用grep和awk从文件中筛选字符串正则表达式:用于匹配字符串,包含匹配任务9:在目录下创建zip和tar压缩文件,并进行解压任务10:使用find和locate定位文件find 命令和 grep 命令区别小结 Task3学习内容.

weixin_57171836的博客 820

Linux命令

#Linux命令解析 文章目录前言一、基础知识1.Shell是什么?2.超级用户与普通用户3.Linux下C编程概述二、Linux命令1.ls2.rmdir和rm3.cp4.cat5.mv6.mkdir7.cd8.head和tail9.echo总结 前言 网络课程设计是一门计算机网络、操作系统、C语言等各门课程的综合体,本周的学习主要是在Linux环境下在shell中使用各种Linux命令,并详细

jennifer_sx的博客 403

Linux 下的这些高效指令,是你快速学习的神器

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。 Linux管理磁盘查看当前磁盘使用情况:df -h fdisk -l (查看所有的硬盘)服务...

weixin_43814458的博客 210

Linux知识考点

目录 5-1 Linux的体系结构 5-2 查找特定文件 5-3 检索文件内容 5-4 对日志内容做统计 5-5 批量替换文件内容 5-1 Linux的体系结构 Shell:命令解释器,可编程 必记内容-Linux基础命令 ls查看目录 cat xxx.sql查看文件里的内容 less xxx.sql查看文件,可前后翻页(使用 [pageup] [pagedown] 等按键),查看之前不会加载全文 more xxx.sql 查看文件,仅能向前翻,加载全文 vi xx.sql

weixin_42082952的博客 1008

收藏吃灰!Linux 文件查找、三剑客、正则表达式,网络安全零基础入门到精通教程建议收藏!

为什么要有文件查找,因为很多时候我们可能会忘了某个文件所在的位置,此时就需要通过find来查找。find命令可以根据不同的条件来进行查找文件,例如:文件名称、文件大小、文件修改时间、属主属组、权限、等等方式。同时find命令是Linux下必须掌握的。是linux里面的一个实时查找工具,通过制定路径完成文件查找find [options] … [查找路径] [查找条件] [处理动作]查找路径:查找的位置,默认是当前文件夹查找条件:制定查找的标准,文件名、大小、类型、日期等等。

Cairo_A的博客 1091

Linux 下的这些高效指令,是你快速入门运维的神器

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应...

运维派 240

Linux 基础操作全攻略:从入门到实战

本文系统梳理了RockyLinux10环境下的常用Linux运维命令,涵盖命令学习方法、文件系统管理、用户权限、进程监控等核心内容。重点包括:1. 命令查询与帮助获取方法;2. 文件/目录操作(创建、查看、删除);3. 文本处理三剑客(grep/sed/awk);4. 用户组管理与权限控制;5. 进程管理与系统监控;6. 实用技巧如通配符、重定向、vim编辑等。文章强调实践操作,建议通过虚拟机练习掌握这些基础但关键的Linux技能,为后续学习shell脚本、服务管理等进阶内容打下坚实基础。

weixin_74871024的博客 217
上一篇: clear files by ruby
下一篇: 优快云 Blog API的设置
mindva
博客等级 码龄19年 2粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值