命令补充:
sort命令###
格式:sort [参数] [-o 输出文件] 参数: -b:排除前导空白字符,从第一个可见字符开始比较-n:按数值排序-r:反转-t 分隔符:指定排序时使用的字段分隔符-o 输出文件:将排序后的结果保存到指定文件中-k:选择要排序的列-f:排序时忽略大小写入字母-u:排序时去除重复行的示例排序过程如下:#常用参数演示,文件内容自己写#排序[root@localhost ~]# cat 1.sh aaabacad[root@localhost ~]# sort 1.sh aaabacad # -n 按数值排序value [root@localhost ~]# sort -n 1.sh 1aa22ab32ac42ad# -r 倒序排序,降序输出[root@localhost ~]# sort -r 1.sh aaa4ad32ac22ab1aa1# 按数字排序排序一列[root @localhost ~]# sort -k1 1.sh 11aa22ab32ac4adaaa# -t:指定分隔符,默认使用空格作为分隔符# 注意:分隔符排序前有一个空格行[root@localhost ~]# cat 3.sh|1|2|3|5|6|2|1|3|7|8|3|4|4|5|4|6|7|8|9|8|2|3|4| 5|4|6|5|7|3|4|6|8|9|0|7|0|7|3|2|4|2|4|2|4|2|3|4[根@本地主机~]# sort -n -r -k2 -t '|' 3.sh |3|4|6|8|9|0|7|0|7|3|4|4|5|4|6| 7|8|9|8|3|2|4|2|4|2|4|2|3|4|2|3|4|5|4|6|5|7|1|2|3| 5|6|2|1|3|7|8# `-u`: 排序时删除重复行[root@localhost ~]# cat 4.shaaaaaaaaaaaaabbbbbbbbbbcccccccccccc[root@localhost ~]# sort -u 4.sh aaaaaabbbbbbcccccc# -o 输出文件:将排序后的结果存储到指定文件中[root@localhost ~]# sort -u 4.sh 5.sh[root@localhost ~]# cat 5.shaaaaaabbbbbbcccccc
uniq命令###
格式:uniq [参数] [文件] 参数: -c:在输出行之前添加输入文件中每一行出现的次数-d:仅显示重复的行和列-u:仅显示不重复的行和列。示例如下: # 去重[ root@localhost ~]# cat 4.sh aaaaaaaaaaaaabbbbbbbbbbcccccccccc[root@localhost ~]# uniq 4.sh aaaaaabbbbbbcccccc# 注意,去重涉及到相邻重复内容的去重,所以先排序再去重[root @localhost ~]# cat 5.sh 123124123123123124124124125126[root@localhost ~]# uniq 5.sh 123124123124125126#这样的话就达不到重复效果了,需要配合sort使用[root@localhost ~]# sort -n 5.sh|uniq 123124125126# -c : 在输出行前面添加每行在输入文件中出现的次数[root@localhost ~]# sort -n 5.sh|uniq -c 4 123 4 124 1 125 1 126 # -u:只显示不重复的行和列[root@localhost ~]# sort -n 5.sh|uniq -u125126
cut命令###
cut 命令用于输出指定部分每一行并删除(剪切)文件中指定的字节和字段
格式:cut [-b/c/f] [文件] 定位方式:-b:字节-c:字符-f:字段注。必须指定参数-b、-c、-f 之一: -b:以字节为单位分割。这些字节位置将忽略多字节字符边界,除非还指定了-n 标志-c:以字符分割-d:自定义分隔符,默认为制表符(Tab) -f:与-d 相同一起使用,指定要显示的区域- n:未分割的多字节字符。仅与-b 标志一起使用。如果字符的最后一个字节落在-b 标志的List 参数指示的br/范围内,则该字符将被写出;否则,该角色将被排除。示例如下: -b byte(英文数字) 模式如下# 以当前登录用户信息为例[root@localhost ~]# who root tty1 2021-12-21 18:47 root pts/0 2021-12 -21 16:52 (192.168.15.1 ) # -b 模式提取字节[root@localhost ~]# who | cut -b 3 o o # 提取第1、2 和3 列中的字节[root@localhost ~]# who | cut -b 1,2, 3 roo roo [root@localhost ~]# 谁| cut -b 1-3 roo roo # 如果cut命令中使用了-b选项,则执行该命令时,cut会先将-b之后的所有位置从小到大定位。提取前先排序。定位顺序不能颠倒。 [root@localhost ~]# 谁| cut -b -3,3- root tty1 2021-12-21 18:47 root pts/0 2021-12-21 16:52 (192.168.15.1) # -3表示从第一个字节开始到第三个字节,3-表示从第三个字节到行尾# 执行上面的语句,第三个字节不会重叠,输出-c模式字符(汉字也可以)如下: [root@localhost ~]# cat a.txt Luffy Sanji Solona Beauty黑胡子白胡子#如果使用b模式,输出会不完整[root@localhost ~]# cut -b 2 a.txt·´ ´ » # 使用c模式,可以看出差别[root@localhost ~] ]# cut -c 2 a.txt Feizhilongmeihuhu# -c 将以字符为单位,输出正常;而-b 只会使用字节(8)位),输出是乱码。 # 使用-n 配合b 模式解决乱码[root@localhost ~]# cut -nb 2 a.txt Feizhilongmeihuhu -f 模式,-b 和-c 只能从固定格式文档中提取信息。对于非固定格式的信息,你束手无策。这时候就使用-f模式。使用时注意设置分隔符# 提取用户名[root@localhost ~]# head -n 5 /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm333 60 /var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin [root@localhost ~]# head -n 5 /etc/passwd | cut -d : -f 1 root bin daemon adm lp
tr命令###
用一个字符替换另一个字符,也可以完全删除某些字符、替换等。
格式:tr [OPTION].SET1 [SET2] 参数: -c:用字符串1 中字符集的补码替换该字符集。字符集要求为ASCII。 -d:删除命令字符-s:将连续的重复字符减少到指定的单个字符-t:减少SET1的指定范围,使其等于SET2设置的长度。示例如下: # 替换[root@localhost ~] # cat 2. sh +a+b+c+d +e+f+g +h+i+j+k +1+2+a+s+d +a+s +a+b+c+1+2+3 # 将2.sh中的'+'替换为'|' [root@localhost ~]# cat 2.sh | tr + '|' |a|b|c|d |e|f|g |h|i| j|k |1|2|a|s|d|a|s |a|b|c|1|2|3 # 将2.sh中的小写字母替换为大写字母[root@localhost ~]# cat 2 。 t a-z A-Z |A|B|C|D |E|F|G |H|I|J|K |1|2|A|S|D|A|S |A|B|C|1| 2|3 # 删除# -d 删除2.sh中的ab字母[root@localhost ~]# cat 2.sh | tr -d 'ab' 新文件[root@localhost ~]# cat 新文件|||c|d |e|fffff|g |h|i|j|k |1|2||s|d||s || |c|1|2|3 # -s 删除连续字符,相当于去重,只保留第一个[root@localhost ~]# cat 2.sh |aaaaaaaaa|bbbbbbbb|c|d |e|fffff| bbbbg |h|i|j|k |1|2|a|s|d|a| s |a|b|c|1|2|3 [root@localhost ~]# cat 2.sh | tr -s [a-z] 新文件[root@localhost ~]# cat 新文件|a|b|c|d | e|f|bg |h|i|j|k |1|2|a|s|d|a|s |a|b|c|1|2|3 # -s 还有替换2 ' 的功能|'在.sh 中,替换为'-' [root@localhost ~]# cat 2.sh | tr -s '|' '-' -aaaaaaaaa-bbbbbbbb-c-d -e-fffff-bbbbbg -h-i-j-k -1 -2-a-s-d-a-s -a-b-c-1-2-3
wc命令###
wc 命令可以计算a 的字节数、字数或列数文件。如果未指定文件名或文件名指定为“-”,则wc 命令从标准输入设备读取数据。
注意:在Linux系统中,一系列连续的数字或字母组合成一个单词
默认情况下,wc会计算指定文件的行数、字数和字节数
格式:wc [OPTION].[FILE]. 参数: -c:统计文件的字节数-l:统计文件的行数-w:统计文件的字数,默认为空格字符作为分隔符示例如下: # 统计字节数# 查看2.sh内容[root@localhost ~]# cat 2.sh |aaaaaaaaa|bbbbbbbb|c|d |e|fffff|bbbbbg |h |i|j|k |1|2|a|s|d|a|s |a|b|c|1|2|3 # 单个文件[root@localhost ~]# wc 2.sh 5 5 76 2 .sh # 对应数字:行数、字数、字节数[root@localhost ~]# wc -c 2.sh 76 2.sh # 字节数[root@localhost ~]# wc -w 2. sh 5 2.sh # 字数[ root@localhost ~]# wc -l 2.sh 5 2.sh # 行数# 多个文件# 不带参数,默认输出为[root@localhost ~]# wc 2 .sh 3.sh 4.sh 5 5 76 2 .sh # 前5表示小于5的行数、字数5、字节数76 5 5 99 3.sh 6 6 42 4。 sh 16 16 217 总计[root@localhost ~]# cat 2.sh 3.sh 4.sh | wc 16 16 217 # 相当于将三个文件的行数、字数、字节数相加并输出#添加参数[root@localhost ~]# wc -c 2.sh 3.sh 4 .sh 76 2.sh # 文件总字节数为99 3.sh 42 4.sh 217 Total [root@localhost ~]# wc -l 2.sh 3.sh 4.sh 5 2.sh # 文件总行数为5 3.sh 6 4.sh 16 Total [root@localhost ~]# wc -w 2.sh 3.sh 4.sh 5 2.sh # 文件总字数5 3.sh 6 4.sh 16 Total # 上面的例子是多文件统计
三剑客 - sed
sed,三剑客之一,sed是一个流媒体编辑器,用于过滤和修改文本等。
用户评论
终于找到了讲解Sed常用参数的教程!之前只会简单的替换操作。
有19位网友表示赞同!
Linux三剑客确实太重要了。 SED 的使用场景真不少,要好好学习一下。
有15位网友表示赞同!
sed 这个命令真强大,看完这个补充教程感觉自己的技能又提升啦!
有13位网友表示赞同!
正需要学习Sed的用法,这篇文章正好帮上忙!感谢作者分享。
有11位网友表示赞同!
我刚开始学Linux,这段关于sed命令的参数讲解非常实用!
有15位网友表示赞同!
看图说话确实比文字更直观,这个教程的案例很不错哦!
有14位网友表示赞同!
学习Sed真的需要多加练习,这个补充教程让我找到方向了。
有9位网友表示赞同!
之前不太了解Sed的使用场景,这个课件很好的帮助我理解了。感谢分享!
有10位网友表示赞同!
实用!实用!这篇文章总结的重点太棒了!推荐给大家!
有10位网友表示赞同!
学习Linux,掌握三剑客是必修课呀!这次重点学习一下Sed。
有19位网友表示赞同!
这个教程把Sed的常用参数都讲得很清楚,方便理解。感谢作者!
有10位网友表示赞同!
真不错啊!希望以后能看到更多Linux相关教程分享。
有9位网友表示赞同!
Sed 的参数好多,总记不住!以后多跟着例子练习吧!
有14位网友表示赞同!
看完这个教程,感觉Sed这个命令不再那么神秘了。
有5位网友表示赞同!
强烈推荐给大家学习linux三剑客!
有13位网友表示赞同!
终于找着了关于Sed的参数演示教程。
有5位网友表示赞同!
我要好好跟着案例练习一下Sed的使用方法。
有6位网友表示赞同!
Linux三剑客真得很有用,需要每天都练习!
有9位网友表示赞同!