shell脚本命令(sotr/unip/tr/cut/eval)与正则表达式

1、sort命令

概述:

  • Linux sort命令用于将文本文件内容加以排序。
  • sort命令可针对文本文件的内容,以行为单位来排序

格式:

sort [选项]  参数

  

常用选项:

  • -f∶ 忽略大小写,会将小写字母都转换为大写字母来进行比较;
  • -b∶ 忽略每行前面的空格;
  • -n∶ 按照数字进行排序;
  • -r∶ 反向排序;
  • -u∶ 等同于uniq,表示相同的数据仅显示一行;
  • -t∶ 指定字段分隔符,默认使用 【Tab】键分隔;
  • -k∶指定排序字段;
  • -o <输出文件>∶ 将排序后的结果转存至指定文件

2、unip命令

概述:

  • Linux uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。

  • uniq 可检查文本文件中重复出现的行列。

格式:

uniq [选项]  参数

  

常用选项:

  • -c∶ 进行计数,并删除文件中重复出现的行;
  • -d∶ 仅显示连续的重复行;
  • -u∶ 仅显示出现一次的行

3、tr命令

概述:

  • Linux tr 命令用于转换或删除文件中的字符。
  • tr 指令从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备。

格式:

tr [选项]  参数

  

常用选项:

  • -c∶保留字符集1的字符,其他的字符(也包括换行符\n)用字符集2替换
  • -d∶ 删除所有属于字符集1的字符
  • -s∶ 将重复出现的字符串压缩为一个字符串;用字符集2替换 字符集1
  • -t∶ 字符集2 替换 字符集1,不加选项和结果

参数

  • 字符集1:指定要转换或删除的原字符集,当执行转换操作时,必须使用参数“字符集2”指定转换的目标字符集,但是执行删除操作时,不需要参数“字符集2”;
  • 字符集2:指定要转换成的目标字符集

使用tr进行排序

  1. 使用echo ${arr[*]}可以输出数组列表
  2. 结合| tr " " "\n" 可以将输出内容中的空格换成换行符
  3. 然后在使用| sort -n对输出的内容进行按数值从小到大排序即可。

4、cut命令

概述:

Linux cut命令用于显示每行从开头算起 num1 到 num2 的文字。

cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。

如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一

格式:

cut [选项]  参数

常用选项:

  • -f∶ 通过指定哪一个字段进行提取。cut命令使用"TAB"作为默认的字段分隔符。
  • -d∶ “TAB"是默认的分隔符,使用此选项可以更改为其他的分隔符。
  • - -complement∶ 此选项用于排除所指定的字段。
  • - -output-delimiter∶ 更改输出内容的分隔符。

5、eval命令

概述:

加上eval时,shell就会在执行命令之前扫描他2次,

eval命令将首先会先扫描命令行进行所有的置换,然后在执行该命令,

该命令适用于那些一次扫描无法实现其功能的变量,该命令对变量进行2次扫描

6、正则表达式

通常用于判断语句中,用来检查某一字符串是否满足某一格式

正则表达式是由普通字符与元字符组成:

  1. 普通字符包括大小写字母、数字、标点符号及一些其他符号。
  2. 元字符是指在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符( 即位于元字符前面的字符)在目标对象中的出现模式。

基础常见的元字符:(支持工具grep、egrep、sed、awk)

\ :转义字符,用于取消特殊符号的含义,例: \!、\n、\$等

^ :匹配字符串开始的位置,例: ^a、 ^the、 ^#、^[a-z]

$ :匹配字符串结束的位置,例: word$、 ^$匹配空行

. :匹配除\n之外的任意的一个字符,例: go.d、 g..d

* :匹配前面子表达式0次或者多次,例: goo*d、 go.*d

[list] :匹配list列表中的一个字符,例: go[ola]d, [abc]、 [a-z]、 [a-z0-9]、 [0-9]匹配任意一位数字

[^list] :匹配任意非list列表中的一个字符,例: [^0-9]、 [^A-20-9]、 [^a-z]匹配任意一位非小写字母

\{n\} :匹配前面的子表达式n次,例: go\{2\}d、 '[0-9]\{2\} '匹配两位数字

\{n,\} :匹配前而的子表达式不少于n次,例: go\{2, \}d、'[0-9]\{2, \}'匹配两位及两位以上数字

\{n,m\} :匹配前面的子表达式n到m次,例: go\{2,3\}d、 ' [0-9]\{2,3\}'匹配两位到三位数字

  注: egrep、 awk使用{n}、{n,小、{n, m}匹配时“{}”前不用加“\”

扩展正则表达式元字符:(支持工具egrep、awk)

+ :匹配前面子表达式1次以上,例: do+g, 将匹配至少一个o, 如dog、 doog、 dooog等

? :匹配前面子表达式0次或者1次,例: do?g, 将匹配dg或dog

() :将括号中的字符串作为h一个整体,例1: d(oo)+g," 将匹配oo整体1次以上,如doog、doooog等

| :以或的方式匹配字条串,例: d (oo|)g," 将匹配doog或者doofuck123g或者dooooooog

  

  

shell脚本命令(sotr/unip/tr/cut/eval)与正则表达式的更多相关文章

  1. 常用shell脚本命令

    常用shell脚本命令 1.显示包含文字aaa的下一行的内容: sed -n '/aaa/{n;p;}' filename 2.删除当前行与下一行的内容: sed -i '/aaa/{N;d;}' f ...

  2. linux 基础 shell脚本命令

    #########shell脚本命令#### 1.diff diff file file1 ####比较两个文件的不同 -c ####显示周围的行 -u ####按照一格式统一输出生成补丁 -r ## ...

  3. win7 cmd终端连接android手机运行adb shell脚本命令

    win7 cmd终端连接android手机运行adb shell脚本命令 (2013-03-22 20:13:57) 转载▼ 标签: android it shell 连接 linux 分类: 嵌入式 ...

  4. (转)shell解析命令行的过程以及eval命令

    shell解析命令行的过程以及eval命令   本文说明的是一条linux命令在执行时大致要经过哪些过程?以及这些过程的大致顺序. 1.1 shell解析命令行 shell读取和执行命令时的大致操作过 ...

  5. shell脚本命令 运行python文件&python命令行运行python代码

    单独的python文件运行的时候 报错: 在shell脚本中,运行shell脚本命令:在Python命令行中,运行Python代码.然而,“python hello.py”是一个脚本命令,不是pyth ...

  6. Shell脚本命令常用技巧

    如果一个命令只有一次输出,但想持续观察输出变化,使用watch -d -n1 'df -h'可行,df -h输出一次硬盘使用情况,用上面指令可以持续观察.-d表示相邻输出如果有差异要高亮标记,-n1表 ...

  7. shell解析命令行的过程以及eval命令

    本文说明的是一条linux命令在执行时大致要经过哪些过程?以及这些过程的大致顺序. 1.1 shell解析命令行 shell读取和执行命令时的大致操作过程如下图: 以执行以下命令为例: echo -e ...

  8. Linux 定时执行shell脚本命令之crontab

    crontab可以在指定的时间执行一个shell脚本以及执行一系列Linux命令 例如:服务器管理员定时备份数据库数据.日志等 详解: 常用命令: crontab –e //修改 crontab 文件 ...

  9. 前端自动化 shell 脚本命令 与 shell-node 脚本命令 简单使用 之 es6 转译

    (背景: 先用 babel 转译 es6 再 用 browserify 打包 模块化文件,来解决浏览器不支持模块化 )(Browserify是一个让node模块可以用在浏览器中的神奇工具) 今天折腾了 ...

随机推荐

  1. FastStoneCapture屏幕截图软件

    1.简介 FastStone Capture(FSCapture)是经典的屏幕截图软件, 可以捕捉全屏图像.活动窗口.任意指定截图形状, 而且还有图像编辑和屏幕录制功能, 还能支持屏幕放大镜和屏幕取色 ...

  2. gogs安装与说明(docker)

    作为一个开发,少不了和git打交道,像github,gitee是很流行的git线上托管平台,而我们也搭建自己的git托管平台,有条件的可以使用gitlab,它对硬件有要求,像博主这种没条件用虚拟机的, ...

  3. Flask_上下文(六)

    Flask中有两种上下文,应用上下文(application context)和请求上下文(request context) 当客户端发来请求时,请求上下文就登场了.请求上下文里包含了请求的各种信息, ...

  4. 可观察对象(Observable)

    最简示例: export class AppComponent { title = 'angular-tour-of-heroes'; // Create an Observable that wil ...

  5. react中自定义antd主题与支持less(第二部)

    自定义主题 首先自定义主题需要修改antd,antd本身也是less写的之后编译成css的,所以当我们需要使用less. 1.yarn add react-app-rewire-less --dev ...

  6. css处理工具PostCss

    在 Web 应用开发中,CSS 代码的编写是重要的一部分.CSS 规范从最初的 CSS1 到现在的 CSS3,再到 CSS 规范的下一步版本,规范本身一直在不断的发展演化之中.这给开发人员带来了效率上 ...

  7. 获取iframe外的document

    在iframe中点击弹出层外部分弹出层消失,但是点击iframe外部分就操作不了弹出层了,被这个问题困扰了不少时间,今天得以解决,代码如下: 说明:$(top.document,document).c ...

  8. Spring Boot Admin,贼好使!

    Spring Boot Admin(SBA)是一个开源的社区项目,用于管理和监控 Spring Boot 应用程序.应用程序可以通过 http 的方式,或 Spring Cloud 服务发现机制注册到 ...

  9. USB Tethering always displays grey when USB tethering type is Linux(EEM)

    USB Tethering always displays grey when USB tethering type is Linux(EEM) 1.Problem DESCRIPTION USB T ...

  10. SQLServer触发器调用JavaWeb接口

    这几天接到一个需求需要吧不同系统的数据库进行同步,需要我做一个中间平台进行连接,瞬间就想到了触发器调用接口然后通过API进行传递再写入另一个数据库. sqlServer触发器调用JavaWeb接口 1 ...