Linux运维学习笔记-通配符及正则表达式知识总结

通配符:
|
* |
代表所有 |
|
|
? |
任意一个字符 |
|
|
; |
两个命令的分隔符 |
|
|
# |
注释 |
|
|
| |
管道,将|前命令的执行结果作为|后命令的输入 |
|
|
~ |
用户的家目录 |
|
|
- |
上一次的目录 |
|
|
$ |
变量前面需要加的符号 |
echo $LANG |
|
/ |
路径分隔符 |
|
|
> |
重定向(覆盖) |
|
|
>> |
追加重定向 |
|
|
< |
输入重定向 |
xargs、tr |
|
<< |
追加输入重定向 |
cat |
|
'' |
单引号,不具有变量置换功能,输出时所见即所得 |
echo 'date' |
|
"" |
具有变量置换功能,解析变量后输出,不加引号相当裕双引号 |
echo "`date`" |
|
`` |
反引号,两个`` 中间为命令,会先执行,等价$() |
echo "$(date)" |
|
{} |
中间为命令区块组合或内容序列 |
|
|
! |
逻辑运算中的"非"(not) |
|
|
&& |
and 并且,当前一个指令执行成功时,执行后一个指令 |
|
|
|| |
or 或者,当前一个指令执行失败时,执行后一个指令 |
|
|
.. |
上一级目录 |
|
|
. |
当前目录 |
正则表达式:为处理大量字符串而定义的一套规则和方法。
常用于(grep\awk\sed)
注意事项:
1、linux正则表达式一般以行为单位进行处理的。
2、alias grep='grep –color=auto'让匹配的内容显示颜色。
3、注意字符集,export LC_ALL=C
例子:
cat >>oldboy.log<<GONGLI
I am oldboy teacher!
I teach Linux.
I like badminton ball,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our site is http://www.etiantian.org
my qq num is 49000448
not 4900000448.
mygod,i am not oldboy,but OLDBOY!
GONGLI

示例:
grep -n显示行号,-v排除,-o只显示匹配到的内容,默认匹配行
过滤出以m开头
[root@ctc oldboy]# grep "^m" oldboy.log
my blog is http://oldboy.blog.51cto.com
my qq num is 49000448
mygod,i am not oldboy,but OLDBOY!
过滤出以m结尾
[root@ctc oldboy]# grep "m$" oldboy.log
my blog is http://oldboy.blog.51cto.com
过滤出空行
[root@ctc oldboy]# grep -n "^$" oldboy.log
3:
8:
[root@ctc oldboy]#
过滤掉除空行外的所有
[root@ctc oldboy]# grep -nv "^$" oldboy.log
1:I am oldboy teacher!
2:I teach Linux.
4:I like badminton ball,billiard ball and chinese chess!
5:my blog is http://oldboy.blog.51cto.com
6:our site is http://www.etiantian.org
7:my qq num is 49000448
9:not 4900000448.
10:mygod,i am not oldboy,but OLDBOY!
只过滤除指定字符
[root@ctc oldboy]# grep -o "qq" oldboy.log


示例:





示例:


grep:


元字符:
\b 单词边界
\n 换行
Sed:
stream editor Linux三剑客老二,流编辑器,实现对文件的增删改替换查。
参数:-n 取消默认输出,-i 修改文件内容,-e 允许多项编辑
功能:
p打印。
s与g联合使用时,表示对当前行全局匹配替换。
s常说的查找并替换,用一个字符串替换成另一个。
例子:sed -i s#oldboy#oldgirl#g a.txt
#是分隔符,可以用/@等替换
Awk:
awk 过滤、输出内容,一门语言。NR 行号。
$1 第一列,$2 第二列依次类推,但$0表示一行,NF表示最后结尾一列。
NR表行数
-F 指定分隔符。
命令的语法始终是:awk '{pattern + action}' 或者 awk 'pattern {action}'。
例子:awk -F % 'NR>=7,NR<=15 {print $1
$3 $7}' myfile
Linux运维学习笔记-通配符及正则表达式知识总结的更多相关文章
- 兄弟连Linux运维学习笔记
最新经典linux运维兄弟连Linux运维学习笔记... --------------- 全程1.5倍播放.加油我一定可以学完Linux----------------------Unix与Linux ...
- Linux运维学习笔记-文件系统知识体系总结
文件系统知识总结 新买的硬盘要存放数据需要怎么做? 首先将硬盘装机做RAID,做完RAID后进行分区,分完区后格式化创建文件系统,最后存放数据. 硬盘的内外部结构: 物理形状: 接口类型: IDE(I ...
- Linux运维学习笔记-文件权限知识总结
权限总结: 1. 可读r:表示具有读取\阅读文件内容的权限: 2. 可写w:表示具有新增.修改文件内容的权限: a. 若果没有r配合,那么vi编辑文件会提示无法编辑(但可以强制编辑),echo可以重定 ...
- Linux运维学习笔记-软硬链接知识总结
文件链接 硬链接,通过索引节点来进行链接 硬链接原理图 硬链接的创建: 直接执行命令“ln 源文件 硬链接文件”,即可完成创建硬链接. 硬链接知识小结: 1.具有相同Inode节点号的多个文件是互 ...
- Linux运维学习笔记-目录知识点总结
目录知识点总结: Note: 1.创建一个/server/scripts目录,用于存放脚本(命令:mkdir -p /server/scripts) 2.安装软件时,安装路径统一为/usr/local ...
- Linux运维学习笔记-iptables知识总结
- Linux运维学习笔记-TCP三次握手和四次挥手
TCP三次握手: TCP四次挥手:
- Linux运维学习笔记-网络技术知识体系总结
传统网络知识体系 未来网络SND模型架构
- Linux运维学习笔记-网络安全等级保护
网络安全等级保护简介与作用: 验证信息系统是否满足相应安全保护等级的一个过程. 对不同信息系统分等级进行保护.
随机推荐
- 《TP5.0学习笔记---模型篇》
https://blog.csdn.net/self_realian/article/details/78596261 一.什么是模型 为什么我们要在项目中使用模型,其实我们知道,我们可以直接在控制器 ...
- 自定义centos7 yum仓库
将安装光盘插入 mkdir /newyum umount /dev/sr0 mount /dev/sr0 /media cp -rf /media/Packages /newyum #将镜像中的rpm ...
- mysql_escape_string — 转义一个字符串用于 mysql_query
string mysql_escape_string ( string $unescaped_string ) 本函数将 unescaped_string 转义,使之可以安全用于 mysql_quer ...
- idea使用插件activate-power-mode给编码加上特效和带来乐趣。
一.安装. 1. 2. 二.使用. 1. 2.
- zw版【转发·台湾nvp系列Delphi例程】HALCON union1
zw版[转发·台湾nvp系列Delphi例程]HALCON union1 unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, ...
- python: 随机选择
想从一个序列中随机抽取若干元素,或者想生成几个随机数. random 模块有大量的函数用来产生随机数和随机选择元素.比如,要想从一个序列中随机的抽取一个元素,可以使用random.choice() : ...
- oracle定时器job的使用
对于DBA来说,数据库Job再熟悉不过了,因为经常要数据库定时的自动执行一些脚本,或做数据库备份,或做数据的提炼,或做数据库的性能优化,包括重建索引等等的工作.但是,Oracle定时器Job时间的处理 ...
- MySQL "tinyInt1isBit or tinyint(1)" 相关问题解析
问题描述 tinyInt 的数据类型,在JAVA数据类型 和 MySQL的数据类型转换,要注意存储长度为 1 的情况.查询时,该字段对应的Java类型为Boolean 源数据: 读取后数据: 问题分析 ...
- Ecplise项目转移到Android Studio,以及Genymotion模拟器介绍
一.移植android项目 今天简单分享一个从ecplise开发项目转移到Android Studio的方法,之前一直在ecplise上开发android项目,但是因为google现在主打Androi ...
- Ubuntu Server VS Ubuntu Desktop区别
今天有位朋友问我,Ubuntu Server 与 Ubuntu Desktop的区别在哪里!区别如下: SERVER没有GUI SERVER没有一堆的桌面软件 SERVER在编译时使用的参数不一样,会 ...