shell的几种常用工具

请参考原文链接:https://blog.csdn.net/qq_37964547/article/details/80959964

最近在学习shell脚本语言,在学习的过程中了解了关于shell的几种常用工具,就总结了一下。

1、sort
功能:顾名思义,sort是对文本进行排序操作的。
原则:sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较, 后将他们按升序输出。
man手册解释:

常用选项介绍:

选项 说明
-r 将文本文件降序输出
-u 在输出行中去掉重复行
-n 以数值来进行升序排序
-t 设定间隔符
-k 用来对指定列数进行排序,通常与-t一起使用
-f 将小写字母都转换为大写字母来进行比较,亦即忽略大小写
-c 会检查文件是否已排好序,如果乱序,则输出第一个乱序的行的相关信息,后返回1
-C 会检查文件是否已排好序,如果乱序,不输出内容,仅返回1
-b 会忽略每一行前面的所有空白部分,从第一个可见字符开始比较
用法示例:
(1)使用sort对文件内容进行升序、降序排序:

(2)去掉重复行升序、降序:

(3)按指定列进行排序

2、uniq
man手册解释:

主要用来去除文本中的重复行
用法示例:

常用语法

选项 说明
-c 显示输出中,在每行行首加上本行在文件中出现的次数。它可取代-u和-d选项。
-d 只显示出现重复的行
-u 只显示文件中不重复的各行
示例:

3、利用sort和uniq求两个文件的交集、并集和补集
分别建立两个文件:

求两个文件的交集:

求两个文件的并集:

求两个文件的补集(file1-file2):

4、paste
man手册说明:

功能:paste单词意思是粘贴。该命令主要用来将多个文件的内容合并。paste将按行将不同文件行信息放在一行。缺省情 况下, paste连接时,用空格或tab键分隔新行中不同文本
将file1和file2内容合并:

常用选项:
(1) -d: 指定域分隔符
指定域分隔符为“:”,并合并两个文件内容

(2)-s: 将每个文件合并成行而不是按行粘贴

(3)- 对每一个(-),从标准输入中读一次数据。默认使用空格 或者tab作域分隔符,该选项可以定制输出格式

5、cut
man手册说明:

功能:cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。 如果不指定 File 参数, cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。
常用选项:
(1)-b :以字节为单位进行分割。

(2)-c :以字符为单位进行分割

对于字符处理,-c和-b似乎没有什么区别,但当你处理汉字的时候,就会有所不同,感兴趣的可以自己测试一下。
(3)-d :自定义分隔符,默认为制表符。
(4)-f :与-d一起使用,指定显示哪个区域

6、xargs
man手册描述:

功能:xargs命令是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具。它擅长将标准输入数据转换成命 令行参数,xargs能够处理管道或者stdin并将其转换成特定命令的命令参数。xargs也可以将单行或多行文本输入 转换为其他格式,例如多行变单行,单行变多行。xargs的默认命令是echo,空格是默认定界符。这意味着通过管 道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换行和空白将被空格取代。xargs是构建单行命令的重要组件之一。

常用选项:
(1)-n选项:指定列数,并多行输出

(2)-d选项: 自定义一个域分隔符,将特定列打散,并指定格式输出

(3)将格式化后的字符串作为命令行参数传递给其他命令,组装完成批量任务

(4)选项-I,使用-I指定一个替换字符串{},这个字符串在xargs扩展时会被替换掉,当-I与xargs结合使用, 每一个参数命令都会被执行一次

(5)find xargs rm 混合使用:

一张图总结xargs常见用法:

7、sed
man手册说明:

功能:sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时, 把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容, 处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变, 除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。
sed默认安照Basic规范基本匹配
常见使用方法:
(1)/pattern/p: 打印匹配pattern的行

使用p命令需要注意,sed是把待处理文件的内容连同处理结果一起输出到标准输出的,因此p命令表示除了把文件内 容打印出来之外还额外打印一遍匹配pattern的行 要想只输出处理结果,应加上-n选项,这种用法相当于grep命令。
(2)/pattern/d: 删除匹配pattern的行

sed命令不会修改原文件,删除命令只表示某些行不打印输出,而不是从原文件中删去,如果要影响源文件,需要使用 -i 选项

(3)/pattern/s/pattern1/pattern2/: 查找符合pattern的行,将该行第一个匹配pattern1的字符串替换为 pattern2

————————————————
版权声明:本文为CSDN博主「Shining-LY」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_37964547/article/details/80959964

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,440评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,814评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,427评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,710评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,625评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,014评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,511评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,162评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,311评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,262评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,278评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,989评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,583评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,664评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,904评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,274评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,856评论 2 339

推荐阅读更多精彩内容