java正则汉字通配符,特殊符号-通配符-正则表达式

本文详细介绍了Linux中重定向、输入输出、特殊符号的使用,以及通配符和正则表达式的实际应用。讲解了如何通过正则进行文件内容过滤,包括基础正则表达式的操作如^、$、.*等,并通过实例展示了如何查找特定模式的行。此外,还涉及到了grep命令的使用技巧,如别名设置和颜色高亮。
摘要由CSDN通过智能技术生成

特殊符号:

1.1 重定向符号

> 输出重定向 先清空文件,追加

>> 追加输出重定向 追加

< 输入重定向 与 xargs tr

<< 追加输入重定向

cat 向一个文件追加多行。

cat >>/oldboy/alex.txt<

Love me, love my dog.

Love Li, love li's dog.

EOF

1.2 表示位置的

.(点) 当前目录

.. 当前目录上一级目录

~ 当前用户的家目录

1.3 特殊符号

注释 root用户的命令提示符

$ 取变量的内容(命令行) 取某一列(awk) 普通用户的命令提示符

! 查找最近一次使用过的命令然后执行 find排除/取反 awk取反 vim强制

history |grep awk

| 管道

; 分割多条命令。

1.4 引号系列

`` $()

'' 所见即所得,原封不动显示出来

"" 解析特殊符号

1.5 简单判断

&& 前一个命令执行成功 ,执行后面的命令

ifdown eth0 && ifup eth0

|| 前一个命令执行失败,执行后面的命令

ls /alex || echo 目录不存在

通配符

2.1 什么作用?

方便大家查找出文件的(文件名)。

Linux大部分命令都支持。

.txt.log

2.2 常见的通配符

2.2.1 所有 任何东西

以.txt结尾.txt

以.log结尾 *.log

系统中以ls开头的文件。

find / -type f -name "ls*"

找出系统中文件名包含oldboy的文件。

find / -type f -name "*oldboy*"

2.2.2 {} 生成序列

echo {1..10}

echo {10..1}

echo {01..10}

echo {01..100}

echo {a..c}

echo {a..z}

echo {A..Z}

[root@oldboyedu42-lnb ~]# echo stu{01..10}

stu01 stu02 stu03 stu04 stu05 stu06 stu07 stu08 stu09 stu10

[root@oldboyedu42-lnb ~]# echo 20{01..10}

2001 2002 2003 2004 2005 2006 2007 2008 2009 2010

2.3 通过{}

[root@oldboyedu42-lnb ~]# echo {a..z}

a b c d e f g h i j k l m n o p q r s t u v w x y z

[root@oldboyedu42-lnb ~]# echo {a c f}

{a c f}

[root@oldboyedu42-lnb ~]# echo {a,c,f}

a c f

[root@oldboyedu42-lnb ~]# echo A{B,C}

AB AC

[root@oldboyedu42-lnb ~]# echo A{,C}

A AC

[root@oldboyedu42-lnb ~]# echo oldboy.txt{,.bak}

oldboy.txt oldboy.txt.bak

[root@oldboyedu42-lnb ~]# touch oldboy.txt

[root@oldboyedu42-lnb ~]# cp oldboy.txt{,.bak}

cp: overwrite `oldboy.txt.bak'? y

[root@oldboyedu42-lnb ~]# ls -l oldboy.txt[root@oldboyedu42-lnb ~]# ls -l oldboy.txt

-rw-r--r-- 3 root root 0 Nov 11 23:50 oldboy.txt

-rw-r--r--. 1 root root 0 Nov 11 23:50 oldboy.txt.bak

-rw-r--r-- 3 root root 0 Nov 11 23:50 oldboy.txt-hard

[root@oldboyedu42-lnb ~]#

[root@oldboyedu42-lnb ~]# #cp oldboy.txt{,.bak}

[root@oldboyedu42-lnb ~]# echo oldboy.txt{,.bak}

oldboy.txt oldboy.txt.bak

[root@oldboyedu42-lnb ~]# echo A{,C}

A AC

2.4 通配符小结

1)查找文件

2)* {}

如何记住不忘记

1.看-思考-你认为你会了

2.命令-多敲

3.命令和知识点 流程图-绘制思维导图(processon.com + xmind)

4.绘图===回顾===整理

5.先走通路,然后变通

6.说出来,不会(先问问别人,然后再给别人说)

是否会了-总结:

1.绘图

2.说出来

正则表达式 RE regular expression

3.1 什么是正则 为何用它?

你可以通过什么方法选出这里面的×××号码。

440304199604012792

130528197108126121

3605sss98304033896

342923198310042132

1404ddddddddd5694X

61242619860416291X

5002xxxxxx04279521

330900199806382320

654126197703092303

131127197105115662

数字与X(在最后一位)

通过符号匹配查找出各种文字。

正则表达式通过特殊符号 ^ $ [] . * 表示各种各样的文字。

方便我们处理文本(日志)。

3.2 谁可以使用正则

三剑客正则(grep sed awk )

python java

3.3 正则表达式与通配符区别

正则---在文件中进行过滤(查找文件内容) 三剑客支持

通配符-找出文件(文件名) 大部分命令都可以使用

3.4 使用正则注意事项:

3.4.1 正则默认是按照行为单位处理。

3.4.2 一定要注意不要使用中文符号。

. ''""^ `` ( ) {} [] <>

。‘’“”……··( ){}【】《》

3.4.3 给grep/egrep加上别名

cat >>/etc/profile<

alias grep='grep --color=auto'

alias egrep='egrep --color=auto'

EOF

source /etc/profile

查看是否更改:grep 3306 /etc/services

3.5 正则分类

基础正则: ^ $ . * []

扩展正则: + | () {} ?

3.6 环境准备

/oldboy/re.txt

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 size is http://blog.oldboyedu.com

my qq is 49000448

not 4900000448.

my god ,i am not oldbey,but OLDBOY!

3.7 基础正则-BRE basic regular expression

3.7.1 ^ ^m 表示以....开头的行

[root@oldboyedu42-lnb oldboy]# grep '^m' re.txt

my blog is http://oldboy.blog.51cto.com

my qq is 49000448

my god ,i am not oldbey,but OLDBOY!

3.7.2 m$ 表示以....结尾的行

[root@oldboyedu42-lnb oldboy]# cat -A re.txt

I am oldboy teacher!$

I teach linux.$

$

I like badminton ball ,billiard ball and chinese chess!$

my blog is http://oldboy.blog.51cto.com $ #注意此处结尾是空格不是m

$

our size is http://blog.oldboyedu.com $ #注意此处结尾是空格不是m

$

my qq is 49000448$

$

not 4900000448.$

my god ,i am not oldbey,but OLDBOY!$

3.8 删除结尾的空格

[root@oldboyedu42-lnb oldboy]# vim re.txt

I am oldboy teacher!

I teach linux.

I like badminton ball ,billiard ball and chinese chess!

my blog is http://oldboy.blog.51cto.com

my qq is 49000448

not 4900000448.

my god ,i am not oldbey,but OLDBOY!

3.9 检查是否修改成功

[root@oldboyedu42-lnb oldboy]# cat -A re.txt

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 size is http://blog.oldboyedu.com$

$

my qq is 49000448$

$

not 4900000448.$

my god ,i am not oldbey,but OLDBOY!$

[root@oldboyedu42-lnb oldboy]#

[root@oldboyedu42-lnb oldboy]# grep 'm$' re.txt

my blog is http://oldboy.blog.51cto.com

our size is http://blog.oldboyedu.com

3.10 cat -A #显示出文件中所有的符号 $这一行的结尾

[root@oldboyedu42-lnb oldboy]# grep ' ' re.txt

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 size is http://blog.oldboyedu.com

my qq is 49000448

not 4900000448.

my god ,i am not oldbey,but OLDBOY!

3.10.1 ^$ 空行 这一行里面什么都没有

[root@oldboyedu42-lnb oldboy]# grep -n '^$' re.txt

3:

6:

8:

10:

练习题:排查文件中的空行

[root@oldboyedu42-lnb oldboy]# grep -v '^$' re.txt

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 size is http://blog.oldboyedu.com

my qq is 49000448

not 4900000448.

my god ,i am not oldbey,but OLDBOY!

4.1 . 任意一个字符 不会匹配空行

#grep -o '.' re.txt

#-o 显示grep的执行过程,grep每一次找出什么

grep -o '.' re.txt

#-o 显示grep的执行过程,grep每一次找出什么

#-o 的结果中 每一行表示 grep每次找出什么

[root@oldboyedu42-lnb oldboy]# grep '0' re.txt

my qq is 49000448

not 4900000448.

[root@oldboyedu42-lnb oldboy]# grep -o '0' re.txt

0

0

0

0

0

0

0

0

[root@oldboyedu42-lnb oldboy]# grep '00' re.txt

my qq is 49000448

not 4900000448.

[root@oldboyedu42-lnb oldboy]# grep -o '00' re.txt

00

00

00

4.1.1 \ 撬棍 转义字符 去掉符号特殊含义 脱掉马甲,打回原形

显示出文件中 以.结尾的行?

[root@oldboyedu42-lnb oldboy]# grep '.$' re.txt

I teach linux.

not 4900000448.

撬棍系列 转义字符系列

\n ====== 回车

4.1.2 * 前一个字符连续出现0次或0次以上

[root@oldboyedu42-lnb oldboy]# grep '0*' re.txt

I am oldboy teacher!

I teach linux.

I like badminton ball ,billiard ball and chinese chess!

my blog is http://oldboy.blog.51cto.com

my qq is 49000448

not 4900000448.

my god ,i am not oldbey,but OLDBOY!

[root@oldboyedu42-lnb oldboy]#

[root@oldboyedu42-lnb oldboy]# grep '0*' re.txt -o

000

00000

4.1.3 连续出现

4.1.4 正则表示连续出现的时候,会尽可能的匹配(吃)更多的符号 贪婪性

[root@oldboyedu42-lnb oldboy]# #0表示0连续出现0次

[root@oldboyedu42-lnb oldboy]# #0 表示0连续出现1次及1次以上

[root@oldboyedu42-lnb oldboy]# #0

[root@oldboyedu42-lnb oldboy]# #000

[root@oldboyedu42-lnb oldboy]# #0000000

[root@oldboyedu42-lnb oldboy]# #0表示0连续出现0次

[root@oldboyedu42-lnb oldboy]# #'0' 只出现0次的时候 ====== ''

[root@oldboyedu42-lnb oldboy]# #会把整个文件的内容都显示出来

[root@oldboyedu42-lnb oldboy]# grep '' re.txt

I am oldboy teacher!

I teach linux.

I like badminton ball ,billiard ball and chinese chess!

my blog is http://oldboy.blog.51cto.com

my qq is 49000448

not 4900000448.

my god ,i am not oldbey,but OLDBOY!

4.2 小结正则之*:

1]] 贪婪性

2]] 连续出现

4.3 .* 所有 任何符号

#在正则中表示连续出现 表示所有 贪婪性

4.3.1 找出文件中以字母m开头的行 并且 以m结尾的行

grep '^m.*m$' re.txt

[root@oldboyedu42-lnb oldboy]# grep '^m' re.txt

my blog is http://oldboy.blog.51cto.com

my qq is 49000448

my god ,i am not oldbey,but OLDBOY!

[root@oldboyedu42-lnb oldboy]# grep '^m' re.txt |grep 'm$'

my blog is http://oldboy.blog.51cto.com

[root@oldboyedu42-lnb oldboy]# grep '^m.*m$' re.txt

my blog is http://oldboy.blog.51cto.com

[root@oldboyedu42-lnb oldboy]# grep '^.*m$' re.txt

my blog is http://oldboy.blog.51cto.com

our size is http://blog.oldboyedu.com

[root@oldboyedu42-lnb oldboy]# grep 'm$' re.txt

my blog is http://oldboy.blog.51cto.com

our size is http://blog.oldboyedu.com

[root@oldboyedu-42mvp ~]# grep '.*m' re.txt

4.4 [] [abc] 表示一个整体,a或b或c任意一个字符

[root@oldboyedu42-lnb oldboy]# grep '[abc]' re.txt

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 size is http://blog.oldboyedu.com

my god ,i am not oldbey,but OLDBOY!

grep '[abc]' re.txt -o

[root@oldboyedu42-lnb oldboy]# grep '[a-z]' re.txt

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 size is http://blog.oldboyedu.com

my qq is 49000448

not 4900000448.

my god ,i am not oldbey,but OLDBOY!

[root@oldboyedu42-lnb oldboy]# grep '[A-Z]' re.txt

I am oldboy teacher!

I teach linux.

I like badminton ball ,billiard ball and chinese chess!

my god ,i am not oldbey,but OLDBOY!

[root@oldboyedu42-lnb oldboy]# grep '[a-zA-Z]' re.txt

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 size is http://blog.oldboyedu.com

my qq is 49000448

not 4900000448.

my god ,i am not oldbey,but OLDBOY!

4.5 #找出文件中以m或n开头的行

[root@oldboyedu42-lnb oldboy]# #第1个里程碑-m或n

[root@oldboyedu42-lnb oldboy]# grep '[mn]' re.txt

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 size is http://blog.oldboyedu.com

my qq is 49000448

not 4900000448.

my god ,i am not oldbey,but OLDBOY!

[root@oldboyedu42-lnb oldboy]# #第2个里程碑-以m或n开头的行

[root@oldboyedu42-lnb oldboy]# grep '^[mn]' re.txt

my blog is http://oldboy.blog.51cto.com

my qq is 49000448

not 4900000448.

my god ,i am not oldbey,but OLDBOY!

grep '[a-z]' re.txt

grep '[A-Z]' re.txt

grep '[0-9]' re.txt

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值