Linux 学习知识 (简单易懂 )持续更新 Linux输出重定向 Linux通配符 Linux正则表达式 持续更新....

发布于:2024-05-16 ⋅ 阅读:(21) ⋅ 点赞:(0)

一.输出重定向

  • 标准输出:是将信息输出在终端
  • 标准错误输出:在执行命令的过程中所产生错误信息也是输出在终端
  • 标准输入:从键盘输入
1.1标准输出重定向
  • 作用:将本来要显示在终端上的信息重定向到一个文件中
实现方法:
  • >   将文件中原有的内容全部删除,然后进行写入
  • >>   在文件原有的内容后,追加新的内容
1.2标准输出错误重定向
  • 2>
  • 2>>

二.通配符

  • .* 任意长度的任意字符
  • ?一个长度或者字符
  • && 只有前面的命令执行成功,后面的命令才会执行
  • || 只有前面命令执行失败,才会执行后面的命令
  • # 注释行(描述信息,不执行)
  • | 传递命令的执行结果
  • ~ 家目录
  • - 上一次所在的目录
  • $ 变量前加的符号
  • / 路径分隔符(或者根)
  • “> >>” 重定向
  •  << 打印菜单
  • 引号
    ' ' : 弱引用,引用的内容原样输出
    " " : 强引用,引用中变量会变成变量的值
    `` : 命令替换
  • . 点

    .表示当前目录
    .. 上一级目录
  • {}
    mkdir {1..10}.dir

三.正则表达式

  • 构成:一堆特殊符号和字母构成----元字符
  • 作用:通过对文本中内容进行过滤,然后对文件中的内容进行过滤
正则表达式的种类:

  • 基础正则表达式
  • 扩展正则表达式

通常结合三个命令使用:

  • grep
  • sed
  • awk
①:grep命令
  • 作用:对文件中的内容进行过滤
  • 格式:grep 选项 匹配内容 文件
选项:
  • -v:取反
  • -o:仅仅显出所匹配的内容
  • -E:使用扩展
  • -i:忽略大小写
通配符和正则的区别:
  • 通配符是对文件名进行匹配,正则表达式是对文件中的内容进行匹配
正则中元字符:
3.1.匹配单个字符
  • .表示任意一个字符(可以空格逗号字母数字...

例子:匹配a前面有一个字符的行

grep".a"11.txt

3.2.[ ] 表达范围内的其中一个
  • [123456] 表示匹配12或者3...6
  • [0-9]匹配所有的数字
  • [A-Z]匹配所有大写的字母
  • [a-z]匹配所有小写的字母
  • [a-Z]匹配所有的字母
例子:匹配文件中包含数字的行
grep [0-9] file
例子:包含字母 a 的行
grep "a" file
3.3.字符集表达方式
  • [[:space:]]:表示一个空格
  • [[:digit:]]:表示任意一个数字
  • [[:lower:]]:表示任意一个小写字母
  • [[:upper:]]:表示任意一个大写字母
  • [[:alpha:]]:表示任意一个字母
  • [[:alnum:]]:表示任意一个字母+数字
  • [[:punct:]]:表示任意一个标点符号
例子:匹配一个包含小写字母的行
grep [a-z] file
grep [[:lower:]] file
3.4^[ ]
例子:匹配以 # 开头的行
grep ^[#] file
[^a] 匹配除了 a 以外的任意字符
grep [^a] file
例子:过滤没有包含 qaz 的行
grep [^qaz] file
例子:过滤出 # 开头后面有一个空格的行
grep "^#[[:space:]]" file
3.5.显示匹配到的行的前的若干行
  • -An:显示匹配到的内容的后n
  • -Bn:显示匹配到的内容的前n
  • -Cn:显示匹配到的内容的前后各n
例子:匹配包含 root 的行的前 3
grep -B3 "root" file
3.6.次数匹配
  • "*"前面字符出现了任意次数
  • ".*" 表示任意长度的任意字符
  • "?"表示其前面字符出现最多一次
  • "a\[m,n\]b" 表示b前面的a至少出现m次,最多出现n次
  • -E a[m,n]b  加一个选项-E 则不需要加\,用法同上

例子:b前面的a只出现一次

grep -E "a{1,1}b" file
例子:b前面的a至少出现1次,最多次数不限
grep -E "a{1,}b" file
3.7.位置锚定
  • ^ 表示以n为开头的行
  • $ 表示以n为结尾的行

例子:过滤出以y为结尾的行

grep "y$" file
3.8.分组
  • \(  \) 将一个内容当作一个整体看待
  • \1 调用第一个整体
  • \2 调用第二个整体
例子:在 11.txt 中,过滤出出现过俩个相同数字的行
grep "\([[:digit:]]\).*\1" file
3.9.扩展正则表达式

格式:

  • grep -E 匹配内容 file
  • egrep 匹配内容 file


网站公告

今日签到

点亮在社区的每一天
去签到