- 浏览: 2663542 次
- 来自: 杭州
文章分类
- 全部博客 (1188)
- webwork (4)
- 网摘 (18)
- java (103)
- hibernate (1)
- Linux (85)
- 职业发展 (1)
- activeMQ (2)
- netty (14)
- svn (1)
- webx3 (12)
- mysql (81)
- css (1)
- HTML (6)
- apache (3)
- 测试 (2)
- javascript (1)
- 储存 (1)
- jvm (5)
- code (13)
- 多线程 (12)
- Spring (18)
- webxs (2)
- python (119)
- duitang (0)
- mongo (3)
- nosql (4)
- tomcat (4)
- memcached (20)
- 算法 (28)
- django (28)
- shell (1)
- 工作总结 (5)
- solr (42)
- beansdb (6)
- nginx (3)
- 性能 (30)
- 数据推荐 (1)
- maven (8)
- tonado (1)
- uwsgi (5)
- hessian (4)
- ibatis (3)
- Security (2)
- HTPP (1)
- gevent (6)
- 读书笔记 (1)
- Maxent (2)
- mogo (0)
- thread (3)
- 架构 (5)
- NIO (5)
- 正则 (1)
- lucene (5)
- feed (4)
- redis (17)
- TCP (6)
- test (0)
- python,code (1)
- PIL (3)
- guava (2)
- jython (4)
- httpclient (2)
- cache (3)
- signal (1)
- dubbo (7)
- HTTP (4)
- json (3)
- java socket (1)
- io (2)
- socket (22)
- hash (2)
- Cassandra (1)
- 分布式文件系统 (5)
- Dynamo (2)
- gc (8)
- scp (1)
- rsync (1)
- mecached (0)
- mongoDB (29)
- Thrift (1)
- scribe (2)
- 服务化 (3)
- 问题 (83)
- mat (1)
- classloader (2)
- javaBean (1)
- 文档集合 (27)
- 消息队列 (3)
- nginx,文档集合 (1)
- dboss (12)
- libevent (1)
- 读书 (0)
- 数学 (3)
- 流程 (0)
- HBase (34)
- 自动化测试 (1)
- ubuntu (2)
- 并发 (1)
- sping (1)
- 图形 (1)
- freemarker (1)
- jdbc (3)
- dbcp (0)
- sharding (1)
- 性能测试 (1)
- 设计模式 (2)
- unicode (1)
- OceanBase (3)
- jmagick (1)
- gunicorn (1)
- url (1)
- form (1)
- 安全 (2)
- nlp (8)
- libmemcached (1)
- 规则引擎 (1)
- awk (2)
- 服务器 (1)
- snmpd (1)
- btrace (1)
- 代码 (1)
- cygwin (1)
- mahout (3)
- 电子书 (1)
- 机器学习 (5)
- 数据挖掘 (1)
- nltk (6)
- pool (1)
- log4j (2)
- 总结 (11)
- c++ (1)
- java源代码 (1)
- ocr (1)
- 基础算法 (3)
- SA (1)
- 笔记 (1)
- ml (4)
- zokeeper (0)
- jms (1)
- zookeeper (5)
- zkclient (1)
- hadoop (13)
- mq (2)
- git (9)
- 问题,io (1)
- storm (11)
- zk (1)
- 性能优化 (2)
- example (1)
- tmux (1)
- 环境 (2)
- kyro (1)
- 日志系统 (3)
- hdfs (2)
- python_socket (2)
- date (2)
- elasticsearch (1)
- jetty (1)
- 树 (1)
- 汽车 (1)
- mdrill (1)
- 车 (1)
- 日志 (1)
- web (1)
- 编译原理 (1)
- 信息检索 (1)
- 性能,linux (1)
- spam (1)
- 序列化 (1)
- fabric (2)
- guice (1)
- disruptor (1)
- executor (1)
- logback (2)
- 开源 (1)
- 设计 (1)
- 监控 (3)
- english (1)
- 问题记录 (1)
- Bitmap (1)
- 云计算 (1)
- 问题排查 (1)
- highchat (1)
- mac (3)
- docker (1)
- jdk (1)
- 表达式 (1)
- 网络 (1)
- 时间管理 (1)
- 时间序列 (1)
- OLAP (1)
- Big Table (0)
- sql (1)
- kafka (1)
- md5 (1)
- springboot (1)
- spring security (1)
- Spring Boot (3)
- mybatis (1)
- java8 (1)
- 分布式事务 (1)
- 限流 (1)
- Shadowsocks (0)
- 2018 (1)
- 服务治理 (1)
- 设计原则 (1)
- log (0)
- perftools (1)
最新评论
-
siphlina:
课程——基于Python数据分析与机器学习案例实战教程分享网盘 ...
Python机器学习库 -
san_yun:
leibnitz 写道hi,我想知道,无论在92还是94版本, ...
hbase的行锁与多版本并发控制(MVCC) -
leibnitz:
hi,我想知道,无论在92还是94版本,更新时(如Puts)都 ...
hbase的行锁与多版本并发控制(MVCC) -
107x:
不错,谢谢!
Latent Semantic Analysis(LSA/ LSI)算法简介 -
107x:
不错,谢谢!
Python机器学习库
grep的功能
grep从一个或多个文本文件中查找符合指定范本(正则表达式)的行,并把查找结果输出到指定设备(默认到屏幕)。
语法:
/usr/bin/grep [选项] <范本(正则表达式)> [文件1 ...]
范本是一个单独的词或者是一个用引号括起来的字符串。如果范本包含空格,则范本要用引号括起来。grep默认下把结果输出到屏幕但是并不影响或改变任何被查找的目标文件。
一些特殊字符($, *, [, ^, |, (, ), 和\)的使用要特别小心,因为这些字符在shell里有特殊意义。如果这些字符作为范本的一部份,请用单引号把整个范式括起来。
范本是一个单独的词或者是一个用引号括起来的字符串。如果范本包含空格,则范本要用引号括起来。grep默认下把结果输出到屏幕但是并不影响或改变任何被查找的目标文件。
一些特殊字符($, *, [, ^, |, (, ), 和\)的使用要特别小心,因为这些字符在shell里有特殊意义。如果这些字符作为范本的一部份,请用单引号把整个范式括起来。
# grep root /etc/passwd /etc/shadow /etc/passwd: root:x:0:0:Super-User:/:/sbin/sh /etc/shadow: root:PdhpgiTZvqa2:13732:::::: 备注:黑体部分是文件名 |
grep命令的输入
grep有三种输入来源:标准输入(键盘)、管道和文件。如果你忘了输入目标文件,grep会假定从标准输入设备(键盘)取得输入,直到你按^D(Control+D)。如果是管道,上个命令的输出将被作为grep的输入被处理,并把查找结果输出到指定输出设备。
global$grep mypattern hello grep I forget input file(s) ^D global$ global$ ps -ef | grep root global$ grep root /etc/passwd /etc/shadow |
grep命令的返回值(不是查找结果)
### 0 (范本在指定文件里被查找到。) global$grep root /etc/passwd;echo $? root:x:0:0:Super-User:/:/sbin/sh 0 ### 1 (范本在指定文件里没有查找到) global$grep roo1t /etc/passwd;echo $? 1 ### 2 (指定的目标文件不存在) global$grep root /etc/passwd1;echo $? grep: can't open /etc/passwd1 2 备注:Bourn/Korn shell变量,?,返回最后被执行的命令的返回值;C shell变量是status。 |
grep命令的选项
选项
|
描述
|
-c |
显示符合范本的行的数目而不是显示满足条件的行的内容 |
-h |
不显示文件名 |
-i |
忽略大小写 |
-l |
只列出有满足条件的行的文件的文件名 |
-n |
显示满足条件的行在包含它的文件中的行号 |
-s |
隐形操作,即如果出错不输出任何信息。在用于只检返回值时非常有用。 |
-v |
反向显示,即输出不满足条件的行。 |
grep的正则表达式的元字符
元字符
|
功能
|
列子
|
描述
|
^ |
行首 |
'^love' |
匹配所有以love开始的行 |
$ |
行尾 |
'love$' |
匹配所有以love结尾的行 |
.(点) |
匹配任意一个字符 |
'l..e' |
匹配所有包含l,紧跟任意2个字符,再跟一个e的行 |
* |
匹配0个或多个字符 |
' *love' |
匹配所有包含0个或多个空格,再跟love的行 |
[] |
匹配一个在集合里的字符 |
'[Ll]ove' |
匹配包含Love或love的行 |
[^] |
匹配一个不在集合里的字符 |
'[^A-K]ove' |
匹配不包含从A-K的字符,紧跟ove的行 |
\< |
词首 |
'\<love' |
匹配所有有任一单词以love为首的行 |
\> |
词尾 |
'love\>' |
匹配所有有任一单词以love为尾的行 |
\(..\) |
标识匹配的一个或多个字符 |
'\(love\)ing' |
标识一个标注以期后面引用,第一个用\1,一次类推,最多有9个;见列子 |
x\{m\} x\{m,\} x\{m,n\} |
重复字符x:m次 至少m次 在m次到n次之间 |
'0\{5\}' '0\{5,\}' '0\{5,10\} |
如果一个行有:连续5个0,至少连续5个0,连续的0在5到10之间,则满足要求。 |
例子
- 查找在/etc下以p为首的文件中有那些行包含有root
# 、/usr/bin/grep root /etc/p*
/etc/passwd: root:x:0:0:Super-User:/:/sbin/sh /etc/project: user.root:1:::: |
- 输出所有的非空行
$ /usr/bin/grep . $HOME.profile $ /usr/bin/grep ^$ /etc/passwd | wc -l (本命令统计/etc/passwd里有几行空行) |
- 输出/etc/passwd中包含root或者sys的行
$/usr/xpg4/bin/grep
-e 'root' -e 'sys' /etc/passwd 或者 $/usr/xpg4/bin/grep -E 'root|sys' /etc/passwd root:x:0:0:Super-User:/:/sbin/sh sys:x:3:3::/: |
- 输出所有行,此行包含这样的一个单词,它以小写字母打头,紧跟任意个字符,以n结尾
$ grep '\<[a-z].*n\>' /etc/passwd (注意.*,它表示任意个字符,包括空格) |
- 输出行,它包含一个3,紧跟着一个点和一个数字,再紧跟任意个字符(.*),再跟一个3(前面标识过了),一个或多个TAB,再跟一个3. 因为3前面被标识过,\(3\),所以后面引用只要用\1就可以了。
$ grep '\(3\)\.[0-9].*\1 *\1' /etc/passwd 注:你可以替换3为任意你想要的其他字符 |
- 输出行,这些行有单词至少包含9个连续的小写字母
$grep '[a-z]\{9,\}' /etc/passwd |
- 输出当前目录下文件名,这些文件包含有这样子的行,这些行包含有'SE'字符串,忽略大小写。
$ grep -l -i 'se' * |
egrep(扩展的grep)
元字符
|
功能
|
例子
|
描述
|
+ |
匹配一个或多个前导字符 |
'[a-z]+ove' |
匹配一个或多个小写字符,紧跟ove.如love,loove,alove |
? |
匹配0个或一个前导字符 |
'lo?ve' |
匹配以l开始,紧跟零个o或者一个o,在跟ve.如lve,love |
a|b |
匹配a或者b |
'love|hate' |
匹配love或者hate |
() |
分组 |
'lov(able|ly)?' |
匹配lovable或者lovly,或者lov |
- 包含S,紧跟h或者u
$ egrep 'S(h|u)' /etc/passwd
发表评论
-
使用dig查询dns解析
2016-12-01 10:39 1407一般来说linux下查询域名解析有两种选择,nslookup ... -
Linux监控工具-Nmon命令行:Linux系统性能的监测利器
2014-09-01 10:49 1841Nmon是一款面向系统管理员的调优和基准测量工具,可以用来显 ... -
安装MySQL-python问题解决
2014-08-20 12:29 14052今天在centos安装MySQL-python,结果报错, ... -
curl POST提交
2014-08-19 16:59 1044curl POST提交的例子: curl "l ... -
通过sar查看网卡流量
2014-08-13 17:30 1531这个工具RHEL5自带有,默认也安装。 一个强大的工具(好 ... -
解决thinkpad t440p ubuntu 14.04无线不能用问题
2014-07-09 22:23 1138前段时间新入手了一台thinkpad t440p,一直来都 ... -
故障排除的第一个五分钟
2014-04-15 14:05 1337原文:http://junqili.com/linux/tr ... -
Linux 性能监测总结
2014-04-14 15:22 842Linux 性能监测:介绍Linux 性能监测:MemoryL ... -
linux free 命令解释
2014-03-22 10:28 1222linux系统内存实际 ... -
超简单方法创建Ubuntu系统可启动U盘
2014-03-11 17:23 2993现在做系统,最方便的方法还是要属U盘启动,随身携带,插入电脑 ... -
Linux 2.6.36内核优化指南
2013-12-26 16:03 1173作者:Ken Wu Email: ken.wug@gmai ... -
Linux下终端利器tmux
2013-11-28 12:01 8747原文:http://kumu-linux.gi ... -
理解inode
2013-11-18 15:18 736文章某位附带一个利用inode监控日志被覆盖的python脚 ... -
Linux 性能测试与分析
2013-11-11 16:31 2068本文参考:http://testing. ... -
Iowait的成因、对系统影响及对策
2013-11-11 16:07 1689参考: Iowait的成因、对系统影响及对策 -
linux运行时提示找不到某个so
2013-11-10 15:22 2924有时候通过linux编译安装一些程序会有类似这样的错误提示: ... -
shell入门
2013-09-11 16:04 872变量赋值 shell中变量赋值不能有空格,比如必须 a= ... -
基于tmpfs或ramfs把linux把目录映射为内存
2013-08-28 13:24 5868在linux系统中,我们可以通过挂载tmpfs或ramfs ... -
Linux查看新磁盘
2013-08-26 16:34 1247通过fdisk -l [admin@server9 jyp ... -
linux 系统环境设置
2013-04-03 18:04 1134yum--update 服务停止 /sbin/se ...
相关推荐
- `ps -ef | grep |p_name>`: 查找指定PID或进程名的进程。 - `kill [-9] <pid>`: 杀死指定PID的进程。 - `who`: 显示当前登录用户列表。 ##### 2.7 存储管理 - **逻辑卷管理**: - `smit vg`: 管理卷组,包括...
Linux系统中的文本处理工具非常...这些工具虽然功能各有侧重点,但都是处理Linux文本数据的强大武器。通过上述内容的学习,相信你已经对这三个命令有了深入的了解,并能够在实际工作中灵活运用这些工具来提高工作效率。
在Linux运维领域,Shell脚本是不可或缺的工具,而正则表达式则是进行数据处理和文本查找的强大武器。"三剑客"通常指的是awk、sed和grep,它们在处理文本和日志时有着各自独特的优势。本文主要关注的是grep命令在正则...
其次,描述中的“神器”可能意味着该资料包含了一些实用的技巧和工具,比如SSH远程连接、Vim编辑器的高级用法、grep和sed文本处理工具、以及自动化脚本编写等。这些工具和技巧能够极大提升你在Linux环境中的工作效率...
7. **文本处理工具**:grep、sed、awk等工具是Unix的强大武器,用于查找、替换、格式化文本,对日志文件等进行高效处理。 8. **Makefile与构建工具**:Makefile用于管理项目依赖,简化程序的编译和链接过程;自动化...
本单元主要介绍了以下几种工具:less、cat、head、tail、grep、cut、wc、sort、diff和patch。 1. **less 和 cat**: - `cat`命令常用于连接(concatenate)多个文件并将其内容通过STDOUT显示。它也用于查看单个...
### Unix awk 使用手册详解 #### 什么是awk? `awk`,这个名字源于其创造者Aho、Weinberg和Kernighan的首字母缩写...掌握`awk`,意味着掌握了Unix环境下文本处理的强大武器,极大地提高了工作效率和数据处理的精度。
9. **grep家族**(008grep家族.PDF):`grep`及其相关的工具(如`egrep`、`fgrep`)是搜索文本模式的利器,它们能帮助快速定位和提取文件中的相关信息。 10. **正则表达式的介绍**(007正则表达式的介绍.PDF):...
8. `grep`:搜索文件内容,`grep "keyword" file`查找包含“keyword”的行。 9. `find`:在文件系统中查找文件,`find / -name myfile`在根目录下查找名为myfile的文件。 10. `cat`/`more`/`less`:查看文件内容,...
总的来说,管理咨询工具是咨询顾问的有力武器,它们为企业提供了解决问题的系统化框架,促进了企业的战略决策和管理优化。正确运用这些工具,不仅可以提升咨询工作的专业性和效果,也能帮助企业实现持续的改进和发展...
此外,书中还会涉及正则表达式和grep、sed、awk等文本处理工具的使用,这些都是Unix/Linux环境中强大的数据处理武器。通过学习,读者可以掌握如何在文本数据中快速查找、替换和提取信息。 书中的章节可能涵盖以下几...
- **命令格式**:大多数Linux命令的格式遵循一种通用模式,即`command [options] [arguments]`。例如,在使用`ls`命令列出文件时,可以加上`-l`选项来显示详细信息,并指定`./backups`作为参数来列出`backups`目录下...
3. **文本处理工具**:如grep(搜索文本模式)、sed(流编辑器)、awk(数据处理语言)等,它们是UNIX的强大武器,能够高效地处理和分析文本数据。 4. **进程管理**:UNIX系统中的进程是程序的执行实例。了解fork...
UNIX系统中包含大量的命令行工具,如grep、find、awk、sed等,它们是进行数据处理和系统管理的强大武器。熟练使用这些工具可以极大地提高日常工作的效率。 **第八章:系统管理与安全** 理解用户账户管理、权限设置...
正则表达式(Regular Expression,简称regex)则是这两种工具中的强大武器,用于文本模式匹配和处理。在“Linux命令行与shell脚本编程-正则表达式的应用案例”中,我们将深入探讨如何在Linux环境中运用正则表达式来...
通过命令`cat /proc/meminfo`可以查看内存信息,或者使用`cat /proc/meminfo | grep MemTotal`来查看内存总量。`MemTotal`字段显示了系统安装的总内存大小,而`MemFree`字段显示了空闲内存大小。另外,`free -m`命令...
比如,`grep`用于搜索文件中的特定文本,`find`帮助查找文件,而`sed`则用于文本处理和流编辑。掌握这些命令可以显著提高你的工作效率。 3. **CLI工具**:命令行工具如curl、jq和git是开发人员的常用武器。curl用于...
正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和分析字符串。它由特殊字符(称为元字符)和普通字符组成,可以用来描述一系列的字符串模式。在编程语言中,正则表达式通常被用作字符串操作的库或内建...