shell正则表达式

admin2024-05-15  1

sort命令

以行为单位对文件内容进行排序,也可以根据不同的数据类型来排序
比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。

shell正则表达式,第1张

shell正则表达式,第2张

sort  对行内容进行升序排序

常用选项:

-n   按照数组进行排序
-r    反向排序
-u 排序后去重(表示相同的数据仅显示一行)
-t '字段分隔符' -k 字段序号根据-t 指定的分隔符的第 k个字段进行排序
-k指定排序字段
-o <输出文件>将排序后的结果转存至指定文件
-f忽略大小写,会将小写字母都转换为大写字母来进行比较
-b忽略每行前面的空格

uniq   对连续的重复行进行去重

常用选项:

-c   对连续的重复行进行去重,并统计重复次数
-d   仅输出连续重复的行
-u   仅输出不连续重复的行


tr   对输入的内容进行替换

常用选项:

-t    tr命令的默认选项,使用 参数2 的字符替换成 参数1 的字符
-c    仅保留 参数1 的字符,其它字符(包括\n)都替换成 参数2 的字符
-s    根据 参数1 进行去重,如果有 参数2 则再用 参数2 的字符替换 参数1 的字符
-d   删除所有 参数1 的字符

删除空行  

Windows的另起一行格式(\r\n)转换成 Linux的另起一行格式(\n)      

对数组排序  


cut  对行内容进行字段截取

-d '分隔符' -f 字段序号根据 -d 指定的分隔符的截取显示 -f 指定的字段
--complement取反,不显示 -f 指定的字段
--output-delimiter '分隔符'指定输出的字段分隔符

     
                 
 

字符串分片      


split   按照格式拆分文件

-l根据行数分割文件
-b根据大小分割文件
-d输出的目标文件后缀用数字替代

paste  将多个文件按照列进行合并

-d '分隔符'指定输出的字段分隔符
-s 将每个列横向输出


eval   在命令行执行前,先将命令行里的变量置换成对应的值后,再执行命令

通配符和正则表达式的作用范围:

正则表达式元字符 

基础元字符

\     转义字符,将一些特殊符号转义成普通字符 \? \! \  将一些普遍字母字符转义成特殊字符 \n \t \r
^     匹配以指定字符串开头的  ^XXX
$     匹配以指定字符串结尾的  XXX$    ^$
.      代表除了 \n 以外的任意字符
[XXX]  匹配中括号里的列表中的任意一个字符  [.\n]  [0-9]  [a-zA-Z0-9]
[^XXX]匹配除了中括号里的列表中的任何字符  [^0-9]匹配所有非数字的字符   [^a-zA-Z]匹配所有非大小字母的字符
*      匹配*前面的字符或表达式任意次数(包括0次 1次或多次) .*   [0-9]*
{n}   匹配{}前面的字符或表达式 n 次
{n,}  匹配{}前面的字符或表达式至少 n 次(大于等于 n 次)
{n,m} 匹配{}前面的字符或表达式 n 到 m 次(大于等于 n 次且小于等于 m 次)

(注:grep  sed 使用时 {} 前面要加 \ ;egep  awk  grep -E  sed -r 使用时 {} 前面不用加 \)


扩展元字符

+     匹配+前面的字符或表达式至少1次(大于等于1次 {1,})
?     匹配?前面的字符或表达式0次或1次({0,1})
()    将()里的表达式作为一个整体    (oo)*   (oo)?
|或       (oo|aa)   (oo|aa)?




     

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!