开发环境入门 linux基础 (部分)正则表达式 grep sed
/etc/profile
/etc/bashrc 、变量添加到shell环境中,永久生效。
/root/.bashrc
/root/.bash_profile
正则表达式
定义:正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法。(被命令所解释)
三种文本处理工具/命令:grep sed awk
grep(过滤)
参数
-n :显示行号

-o :只显示匹配的内容

-q :静默模式,没有任何输出,得用$?来判断执行成功没有,即有没有过滤到想要的内容

-l :如果匹配成功,则只将文件名打印出来,失败则不打印,通常-rl一起用,
grep -rl 'root' /etc

-A :如果匹配成功,则将匹配行及其后n行一起打印出来(常用于日志文件)

-B :如果匹配成功,则将匹配行及其前n行一起打印出来

-C :如果匹配成功,则将匹配行及其前后n行一起打印出来

-c :如果匹配成功,则将匹配到的行数打印出来

-E :等于egrep,扩展
grep -E ==== egrep
-i :忽略大小写,对搜索过滤文件直接输出

-v :取反,不匹配

-w:匹配单词 连续的字母,碰上一个空格就作为单词处理

正则介绍
^ 行首 过滤 以***开头的行(*代表任意文本)

$ 行尾 过滤 以***结尾的行(*代表任意文本)

. 除了换行符以外的任意单个字符

* 前面的字符有零个或无穷个






.* 所有字符

[] 字符组内的任一字符 \表示转义符,同时 - 智能放于开头或是结尾






[^] 对字符组内的每个字符取反(不匹配字符组内的每个字符)
^[^] 非字符组内的字符开头的行

[a-z] 小写字母
[A-Z] 大写字母
[a-Z] 小写和大写字母
[0-9] 数字
\< 单词头 单词一般以空格或特殊字符做分隔,连续的字符串被当做单词
\> 单词尾
-v取反过滤掉需要剔除的文件。
sed
定义:流编辑器 stream editer,是以行为单位的处理程序
-n:静默模式,不打印输出
-e:指定扩展规则
-i:对文件进行更改
-f
: 把''规则写入文件
1、定位 :sed '3' test
2、d 删除 sed ‘3d’test :删除第3行
3、p 复制 sed '3p'
test :打印第三行,(重新复制输出)
4、c 更改 sed '3c'
11111111 test : 改变第三行的文件
5、a 追加 sed '3a'
11111111 test : 在第三行之后追加文件
6、 i 插入sed '3i'
1111111 test : 在第三行之前插入一行文件.
正则定位 然后再操作 只写命令不定位,定所有文件内的位置
sed '/正则表达/命令' test
1、sed '/^root/d'
test 删除root这一行;
sed '1,3d' test 删除1到3行;
sed '1d;3d' test 删除第一行和第三行
2、s命令 替换 把什么东西换成什么东西 命令: sed '///s'
文件
sed 's/cd/234/' a.txt 一行之中匹配到多个,默认只改一个
sed
's/cd/234/g' a.txt 一行之中匹配到多个全部替换
()将代码扩成一个整体
sed
-r 扩展正则,(默认使用!!!)
sed -r '/^[0-9]([a-Z]{3)xsb$/s/sb/SB/g'
a.txt 倒着从后往前推好理解
将第一行的第一个单词替换掉
sed
-r 's/^([a-Z]+)([^a-Z]+)/ \1
\2 /g' test
1个单词 符号 取第一部分 取第二部分
将最后一个单词去掉
sed
-r
's/([^a-z])([a-z]+)$/\1/g' test
两个单词互换位置
sed
-r
's/^([a-z]+)([^a-z]+)([a-z]+)([^a-z]+)/\3\2\1\4/g' test
开发环境入门 linux基础 (部分)正则表达式 grep sed的更多相关文章
- 开发环境入门 linux基础 (部分)awk 赋值变量 if
awk 常用于处理格式非常明显的文件 awk -F: '{print $1}' /etc/passwd 含义:取冒号分隔符的第一段内容 $0 指取所有! NF 指有几段内容 $NF 取最后一段内容 ...
- 开发环境入门 linux基础(部分)虚拟内存,rpm和yum安装
虚拟内存,rpm和yum安装 文本中查找 /内容 替换:扩展模式下(:)%s /替换目标/要替换的文件/ (只替换第一个)(后边加g全部替换) :set u添加行号 raid lvm逻辑卷 df - ...
- 开发环境入门 linux基础 (部分)while for 函数 计划任务
while循环 while do 动作 done 需要无限循环时我们会选择while : echo -e 格式处理,将\n的意义不变. exit 指退出执行程序 break 指跳出本层循环 conti ...
- 开发环境入门 linux基础 (部分) 复制 用户和组操作 权限更改
复制 用户和组操作 权限更改 CP 复制命令 cp 源文件 目标文件 a) –r(recursive,递归的):递归地复制目录.当复制一个目录时,复制该目录中所有的内容,其中包括子目录的全部内容. b ...
- 开发环境入门 linux基础 基本操作命令(部分) 文本结构和基本命令
文本结构和基本命令 linux系统中系统提示符:$ 表示普通用户 su root切换用户命令(用户名 root),输入密码,切换到其他用户状态 root 命令提示符:# exit 退出当前用户,返回 ...
- 开发环境入门 linux基础 (部分)网络 SSH 更名 DNS解析 元字符
nginx---> web ifconfig 查看网络配置信息 id add show 查看当前网卡信息(最小安装下) mtu 是指网卡传输的最大单元 单位:字节 网卡配置 临时配置 ifcon ...
- 开发环境入门 linux基础 (部分)nginx和nfs
nginx和nfs 复习总结 rpm -ivh 软件包 --nodeps (没有依赖性安装) rpm -ivh 软件包 --force (覆盖安装) yum -y upgrade 升级所有包,不改变软 ...
- 开发环境入门 linux基础 (部分) 归档 压缩 Vi编译器 系统分区
归档 压缩 Vi编译器 系统分区 1.使用cat命令进行文件的纵向合并 1) 使用cat命令实现文件的纵向合并: a) 例如:将用户信息数据库文件和组信息数据库文件 ...
- 使用Ant搭建Android开发环境入门
使用Ant搭建Android开发环境入门 使用Ant搭建Android开发环境,建立android项目 配置Ant环境 下载Ant:http://ant.apache.org/bindownloa ...
随机推荐
- 【P2629】好消息,坏消息(前缀和+单调队列优化DP)
一激动一颓就会忘了总结... 前面的大黄题就不总结了. 这个题我只想说一声艹,一开始的思路就是正确的,然后计算的时候有了一个瑕疵,不过很快也就改过来了.然后却一直连样例都过不了.仔仔细细看了老半天,经 ...
- 【bzoj5085】最大(二分+乱搞)
题目传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=5085 这道题我们可以先二分答案,然后转化为判定是否有四角权值>=mid的矩形. ...
- 解决maven寻找依赖关系失败的问题
在mac中会碰到依赖jdk自带的jar包而maven找不到的问题 解决方案:安装jdk中的tools到本地mvn库 mvn install:install-file -Dfile=${JAVA_HOM ...
- java多线程(内附实例:窗口售票问题、人和叉子的问题)
java多线程的开发有两种方法: (1)实现Runnable接口: (2)继承Thread类: 区别: (1)由于java中一个类只能继承一个父类,但是可以实现多个接口,所以实现Runnable接口比 ...
- 【转】ListView优化为何ViewHolder用static类
如果有人还不了解ViewHolder为什么可以起到优化作用,我这边再做下简单说明:Android的findViewById动作是比较耗时的,需要遍历布局的树形结构,才能找到相应的视图.所以如果想在这一 ...
- QT 利用ListWidget 和 StackedLayout 配合实现 分页 选项
1. 如图, 左边为listwidget,右边为StackedLayout, 通过listwidget的不同选项,可以使右边的不同页显示出来. 2. dialog.h #ifndef DIALOG_H ...
- BZOJ4199/UOJ131 [Noi2015]品酒大会
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...
- JNI_Z
1. ZC: 用到 VC6 ... http://blog.csdn.net/jiangwei0910410003/article/details/17465085 http://blog.csdn. ...
- nova Reboot (重启)
物理机有两种重启方式:一种从操作系统中重启,一种直接先断电然后再接通电源.虚机的重启也有类似的两种方式:Soft Reboot 和 Hard Reboot.nova reboot 命令在不使用 “-h ...
- NSRegularExpression iOS自带的正则表达式
以前做验证邮箱,电话号码的时候通常用第三方的正则表达式或者NSPredicate(点这里查看以前的文章),在后期,苹果推出了自己的正则表达式来提供给开发者调用,很方便,功能也强大. 具体可以查看官方文 ...