sort(参考学习网站:http://www.cnblogs.com/dong008259/archive/2011/12/08/2281214.html)
功能:根据不同的数据类型进行排序
格式:sort [-cMnrtk][源文件][-o 输出文件]
说明:
如果有一个文件"1.txt",假如有一列数字,分别为1,2,2,3,5,4
-n: 依照数值的大小排序 --> 数字以字符进行排序时,2比10大 cat 1.txt | sort -n
-u: 在输出行中去除重复行 cat 1.txt | sort -u
-r:反序排列 cat 1.txt | sort -r
-o:将结果输出到源文件(如果使用sort -n 1.txt > 1.txt,将导致文件内容丢失 使用 sort -n 1.txt -o 1.txt)
-t(分隔符),-k(区间数):确定排序的列 -->sort -nr -t":" -k 3 /etc/passwd 将文件的第三列以数字的形式进行f反向排序
uniq(参考学习网站:http://blog.csdn.net/e421083458/article/details/37913181)
功能:读取输入文件,并比较相邻的行。可去除重复行。(使用前,需要用sort先进行排序)
格式:uniq [-cdu] 文件
说明:
-c:在输出行前面加上每行在输入文件中出现的次数
-d:仅显示重复行
-u:仅显示不重复的行
示例:cat /etc/passwd | awk -F":" '{print $7}'| sort |uniq -c --> 查看passwd中解释器种类及数量
cut(参考学习地址:http://www.cnblogs.com/dong008259/archive/2011/12/09/2282679.html)
功能:对文件进行内容选取,对所有行进行操作
格式:cut [-bcdfn] 文件
说明:
-b :以字节为单位进行分割。【这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志】(数字/字母/符号,一个一个字节,汉子为三个字节 echo "好的" | cut -b 4-6
-c :以字符为单位进行分割
-d :自定义分隔符,只能是单一character。这个区分与awk,有时候awk更为方便。
-f :与-d一起使用,指定显示哪个区域。
-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的<br />范围之内
示例:
cat /etc/passwd | cut -d":" -f7 |sort | uniq (查看/etc/passwd中所有用户地解释器种类有多少)
sed(学习参考地址:http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2856901.html、http://www.iteye.com/topic/587673)
功能:在线编辑器,自动编辑一个或多个文件,简化对文件的反复操作、编写转化程序等。不会改变原文件内容
次处理一行数据,首先将数据放入临时缓冲区中,sed命令处理缓冲区中的内容,完成后输出到屏幕。后接着处理下一行,知道结尾
地址:通过地址(数字)来指定编辑对应的行,以逗号分隔两个数字作为起始位置(含),例:1,5(第一行到第五行),$表示最后一行
格式:sed [-nefr] [动作]
说明:
-n:安静(silent)模式, 加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来
-e:多点编辑/命令,直接在命令列模式上进行 sed 的动作编辑
-i:直接修改读取的文件内容,而不是输出到终端(修改原文件)
-f:直接将 sed 的动作写在一个文件内, -f filename 则可以运行 filename 内的 sed 动作(不常用)
-r:sed 的动作支持的是延伸型正规表示法的语法。(默认是基础正规表示法语法)(不常用)
动作部分
[n1,n2]动作
n1、n2为操作的作用地址,$是行尾
a:新增 ,a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c:取代,c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d:删除,因为是删除啊,所以 d 后面通常不接内容
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行)
p:列印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行
s :取代,可以直接进行取代的工作,通常这个 s 的动作可以搭配正则表达式!例如 1,20s/old/new/g
示例:
新增:sed '2a hello world' /etc/passwd:在第二行的后面新增一行;
sed '2,3a hhh' /etc/passwd (会在第三行和第四行都会增加hhh)
取代:sed '2,$c hhh' /etc/passwd (第二行到最后一行被取代)
删除:sed '2,$d' /etc/passwd :删除第二行到最后一行
插入:sed '2i hhh' /etc/passwd :第二行插入字符串,原第二行变成了第三行
sed '2,5i hhh' /etc/passwd :第二行到第五行中间都将插入字符串
列印:sed -n '2,3p' /etc/passwd:将第2,3行内容输出
补充:sed是常用正则表达式的一种命令,在此不做进一步深挖。可参考百度
功能:General Regular Expression Parser,通用正则表达式的缩写是,一种文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。在grep的基础还有扩展了egrep/fgrep等信息
格式:grep [-acinv] [--color=auto] '搜寻字符串' filename
说明:
-a :将 binary 文件以 text 文件的方式搜寻数据
-c :计算找到 '搜寻字符串' 的次数
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!
--color=auto :可以将找到的关键词部分加上颜色的显示喔
-A(n):After,将查找的结果连后(n)行业显示出来
-B(n):Before,作用参上
-C(n):Center,作用参上
正则表达式
[ ]:匹配任意一个字符 -->grep -n "[1-9][3-9]" 匹配以1-9任意数据开始,后面跟3-9任意一个数字,则数据范围在13~99之间
[^]:反向选择
^、$:开始、结尾符, -->grep -n "^root.*root$" 匹配以root开头并以root结尾的行
.:至少有任意一个字符
?:任意一个字符,0或1个(需要使用grep -E)
*:重复前一个字符(串)n(n>=0)个
+:重复前一个字符1次以上(需要使用grep -E)
示例:
grep -A1 -n --color=auto "^hd.*/bash$" /etc/passwd >>以hd开始,/bash结尾,输出行数、对应行及下一行并高亮。
功能:目录结构中搜索文件,并执行指定的操作,涉及到较多搜索时,放到后台进行(命令结尾添加:&)
格式:find pathname [选项]
说明:
-name :按照文件名查找文件
-type:依据文件类型查找,
f:普通文件
d:目录
l:符号链接文件
b/c:块/字符设备文件
P:管道文件
-print:将匹配的文件输出到标准输出(-print0:不换行)
-size:匹配文件大小(K/M/G)
-perm:(permission)匹配文件权限进行查找
示例:find ~ -perm 755 -type d -name "demon*" (在家目录下查找权限是755以demon开头的目录)
-user/-group :匹配文件属主/组主进行文件查询。
示例:find ~ -user sunhuaj -name "hehe" (查找家目录下属主为sunhuaj名称为hehe的文件)
文件元数据:accesstime、modifytime、changetime
+:时间之前;-:时间之内(最近时间内)
-ctime:+/-n 根据文件的创建时间进行查找 【以天维度,跨度大;-cmin,分钟维度】
-atiime:+/-根据文件的访问时间进行查找【同上;-amin,分钟维度】
-mtime:+/-根据文件的修改时间进行查找【同上;-mmin分钟维度】
-exec cmd {} \;:find命令对匹配的文件执行该参数所给出的shell命令,注意“{}”与“\;”有空格
示例:
1、查找一天以内创建的1小时之前修改过的大于3M的文件
find ~ -ctime -1 -mmin 60 -size +3M -print
2、查找空文件/目录
find / -empty
3、查看目标文件的详细信息
find ~ -name "*shj*" -exec ls -l {} \;
功能:强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理
格式:awk '{pattern + action}' {filenames}
pattern:表示 AWK 在数据中查找的内容,为要表示的正则表达式,用斜杠括起来
action:找到匹配内容时所执行的一系列命令。
说明:花括号({})不需要在程序中始终出现,但它们用于根据特定的模式对一系列指令进行分组
示例:
a、last -n 5 | awk '{print $1}':显示最近登录的五个账号
awk工作流程是这样的:读入有'\n'换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域。默认域分隔符是"空白键" 或 "[tab]键",所以$1表示登录用户,$3表示登录用户ip,以此类推
b、cat /etc/passwd | awk -F":" '{print $1}' :只显示/etc/passwd的用户
cat /etc/passwd | awk -F":" '{print $1"\t"$7}' :显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以tab键分割
c、cat /etc/passwd |awk -F ':' 'BEGIN {print "name,shell"} {print $1","$7} END {print "blue,/bin/nosh"}'
awk工作流程是这样的:先执行BEGING,然后读取文件,读入有/n换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域,随后开始执行模式所对应的动作action。接着开始读入第二条记录······直到所有的记录都读完,最后执行END操作
d、cat /etc/passwd | awk '/root/' :搜索有关键字rootde行
e、 awk -F: '/root/{print $7}' /etc/passwd:搜索/etc/passwd有root关键字的所有行,并显示对应的shell
sort(参考学习网站:http://www.cnblogs.com/dong008259/archive/2011/12/08/2281214.html)
功能:根据不同的数据类型进行排序
格式:sort [-cMnrtk][源文件][-o 输出文件]
说明:
如果有一个文件"1.txt",假如有一列数字,分别为1,2,2,3,5,4
-n: 依照数值的大小排序 --> 数字以字符进行排序时,2比10大 cat 1.txt | sort -n
-u: 在输出行中去除重复行 cat 1.txt | sort -u
-r:反序排列 cat 1.txt | sort -r
-o:将结果输出到源文件(如果使用sort -n 1.txt > 1.txt,将导致文件内容丢失 使用 sort -n 1.txt -o 1.txt)
-t(分隔符),-k(区间数):确定排序的列 -->sort -nr -t":" -k 3 /etc/passwd 将文件的第三列以数字的形式进行f反向排序
uniq(参考学习网站:http://blog.csdn.net/e421083458/article/details/37913181)
功能:读取输入文件,并比较相邻的行。可去除重复行。(使用前,需要用sort先进行排序)
格式:uniq [-cdu] 文件
说明:
-c:在输出行前面加上每行在输入文件中出现的次数
-d:仅显示重复行
-u:仅显示不重复的行
示例:cat /etc/passwd | awk -F":" '{print $7}'| sort |uniq -c --> 查看passwd中解释器种类及数量
cut(参考学习地址:http://www.cnblogs.com/dong008259/archive/2011/12/09/2282679.html)
功能:对文件进行内容选取,对所有行进行操作
格式:cut [-bcdfn] 文件
说明:
-b :以字节为单位进行分割。【这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志】(数字/字母/符号,一个一个字节,汉子为三个字节 echo "好的" | cut -b 4-6
-c :以字符为单位进行分割
-d :自定义分隔符,只能是单一character。这个区分与awk,有时候awk更为方便。
-f :与-d一起使用,指定显示哪个区域。
-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的<br />范围之内
示例:
cat /etc/passwd | cut -d":" -f7 |sort | uniq (查看/etc/passwd中所有用户地解释器种类有多少)
sed(学习参考地址:http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2856901.html、http://www.iteye.com/topic/587673)
功能:在线编辑器,自动编辑一个或多个文件,简化对文件的反复操作、编写转化程序等。不会改变原文件内容
次处理一行数据,首先将数据放入临时缓冲区中,sed命令处理缓冲区中的内容,完成后输出到屏幕。后接着处理下一行,知道结尾
地址:通过地址(数字)来指定编辑对应的行,以逗号分隔两个数字作为起始位置(含),例:1,5(第一行到第五行),$表示最后一行
格式:sed [-nefr] [动作]
说明:
-n:安静(silent)模式, 加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来
-e:多点编辑/命令,直接在命令列模式上进行 sed 的动作编辑
-i:直接修改读取的文件内容,而不是输出到终端(修改原文件)
-f:直接将 sed 的动作写在一个文件内, -f filename 则可以运行 filename 内的 sed 动作(不常用)
-r:sed 的动作支持的是延伸型正规表示法的语法。(默认是基础正规表示法语法)(不常用)
动作部分
[n1,n2]动作
n1、n2为操作的作用地址,$是行尾
a:新增 ,a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c:取代,c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d:删除,因为是删除啊,所以 d 后面通常不接内容
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行)
p:列印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行
s :取代,可以直接进行取代的工作,通常这个 s 的动作可以搭配正则表达式!例如 1,20s/old/new/g
示例:
新增:sed '2a hello world' /etc/passwd:在第二行的后面新增一行;
sed '2,3a hhh' /etc/passwd (会在第三行和第四行都会增加hhh)
取代:sed '2,$c hhh' /etc/passwd (第二行到最后一行被取代)
删除:sed '2,$d' /etc/passwd :删除第二行到最后一行
插入:sed '2i hhh' /etc/passwd :第二行插入字符串,原第二行变成了第三行
sed '2,5i hhh' /etc/passwd :第二行到第五行中间都将插入字符串
列印:sed -n '2,3p' /etc/passwd:将第2,3行内容输出
补充:sed是常用正则表达式的一种命令,在此不做进一步深挖。可参考百度
功能:General Regular Expression Parser,通用正则表达式的缩写是,一种文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。在grep的基础还有扩展了egrep/fgrep等信息
格式:grep [-acinv] [--color=auto] '搜寻字符串' filename
说明:
-a :将 binary 文件以 text 文件的方式搜寻数据
-c :计算找到 '搜寻字符串' 的次数
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!
--color=auto :可以将找到的关键词部分加上颜色的显示喔
-A(n):After,将查找的结果连后(n)行业显示出来
-B(n):Before,作用参上
-C(n):Center,作用参上
正则表达式
[ ]:匹配任意一个字符 -->grep -n "[1-9][3-9]" 匹配以1-9任意数据开始,后面跟3-9任意一个数字,则数据范围在13~99之间
[^]:反向选择
^、$:开始、结尾符, -->grep -n "^root.*root$" 匹配以root开头并以root结尾的行
.:至少有任意一个字符
?:任意一个字符,0或1个(需要使用grep -E)
*:重复前一个字符(串)n(n>=0)个
+:重复前一个字符1次以上(需要使用grep -E)
示例:
grep -A1 -n --color=auto "^hd.*/bash$" /etc/passwd >>以hd开始,/bash结尾,输出行数、对应行及下一行并高亮。
功能:目录结构中搜索文件,并执行指定的操作,涉及到较多搜索时,放到后台进行(命令结尾添加:&)
格式:find pathname [选项]
说明:
-name :按照文件名查找文件
-type:依据文件类型查找,
f:普通文件
d:目录
l:符号链接文件
b/c:块/字符设备文件
P:管道文件
-print:将匹配的文件输出到标准输出(-print0:不换行)
-size:匹配文件大小(K/M/G)
-perm:(permission)匹配文件权限进行查找
示例:find ~ -perm 755 -type d -name "demon*" (在家目录下查找权限是755以demon开头的目录)
-user/-group :匹配文件属主/组主进行文件查询。
示例:find ~ -user sunhuaj -name "hehe" (查找家目录下属主为sunhuaj名称为hehe的文件)
文件元数据:accesstime、modifytime、changetime
+:时间之前;-:时间之内(最近时间内)
-ctime:+/-n 根据文件的创建时间进行查找 【以天维度,跨度大;-cmin,分钟维度】
-atiime:+/-根据文件的访问时间进行查找【同上;-amin,分钟维度】
-mtime:+/-根据文件的修改时间进行查找【同上;-mmin分钟维度】
-exec cmd {} \;:find命令对匹配的文件执行该参数所给出的shell命令,注意“{}”与“\;”有空格
示例:
1、查找一天以内创建的1小时之前修改过的大于3M的文件
find ~ -ctime -1 -mmin 60 -size +3M -print
2、查找空文件/目录
find / -empty
3、查看目标文件的详细信息
find ~ -name "*shj*" -exec ls -l {} \;
功能:强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理
格式:awk '{pattern + action}' {filenames}
pattern:表示 AWK 在数据中查找的内容,为要表示的正则表达式,用斜杠括起来
action:找到匹配内容时所执行的一系列命令。
说明:花括号({})不需要在程序中始终出现,但它们用于根据特定的模式对一系列指令进行分组
示例:
a、last -n 5 | awk '{print $1}':显示最近登录的五个账号
awk工作流程是这样的:读入有'\n'换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域。默认域分隔符是"空白键" 或 "[tab]键",所以$1表示登录用户,$3表示登录用户ip,以此类推
b、cat /etc/passwd | awk -F":" '{print $1}' :只显示/etc/passwd的用户
cat /etc/passwd | awk -F":" '{print $1"\t"$7}' :显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以tab键分割
c、cat /etc/passwd |awk -F ':' 'BEGIN {print "name,shell"} {print $1","$7} END {print "blue,/bin/nosh"}'
awk工作流程是这样的:先执行BEGING,然后读取文件,读入有/n换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域,随后开始执行模式所对应的动作action。接着开始读入第二条记录······直到所有的记录都读完,最后执行END操作
d、cat /etc/passwd | awk '/root/' :搜索有关键字rootde行
e、 awk -F: '/root/{print $7}' /etc/passwd:搜索/etc/passwd有root关键字的所有行,并显示对应的shel
- Linux下命令sort, uniq
标题:sort, uniq 一.sort命令的使用 1. 作用:sort命令顾名思意,其可以帮助我们进行排序,而且可以依据不同的数据类型来排序.例如数字和文字的排序就不一样,sort可以指 ...
- linux sort,uniq,cut,wc命令详解
linux sort,uniq,cut,wc命令详解 sort sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出.如果 File 参数指定多个文件,那么 sort 命令将这些 ...
- (转)linux sort,uniq,cut,wc命令详解
linux sort,uniq,cut,wc命令详解 sort sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出.如果 File 参数指定多个文件,那么 sort 命令将这些 ...
- 【转帖】linux sort,uniq,cut,wc,tr,xargs命令详解
linux sort,uniq,cut,wc,tr,xargs命令详解 http://embeddedlinux.org.cn/emb-linux/entry-level/201607/21-5550 ...
- Linux高级命令进阶(week1_day2)
Linux高级命令进阶(week1_day2)--技术流ken 输出重定向 场景:一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果想要保存到文件中进行后续的分析/统计,则这时候 ...
- Linux进阶命令-sort、uniq、 cut、sed、grep、find、awk
命令难度总体来说有简入难,参数都是工作中常常用到的.如果涉及到一些生僻的参数还请百度或man一下. sort(参考学习网站:http://www.cnblogs.com/dong008259/arch ...
- 文本处理命令(sort+uniq+cut+tr+wc)+三剑客之sed
目录 文本处理命令+三剑客之sed 一.文本处理命令 1.排序命令 sort 2.检查/删除命令 uniq 3. cut 显示特定部分命令 4. 替换或删除命令 tr 5.统计 计算数字命令 wc 二 ...
- linux sort,uniq,cut,wc,tr命令详解
sort是在Linux里非常常用的一个命令,对指定文件进行排序.去除重复的行 sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出.如果 File 参数指定多个文件,那么 sor ...
- 文件上传下载,命令之wget / curl / which / sort / uniq / cut / wc /tr /sed
目录 命令 1.文件的上传下载 2.从外网下载文件wget 3.curl文件下载 4.查找命令which 5.字符处理命令-排序sort 6.字符处理-去重uniq 7.字符处理-截取cut 8.字符 ...
随机推荐
- 调用微信js sdk
场景:需要调用微信获取当前位置的借口. 途径:查看微信 https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115 .后 ...
- C Primer Plus (一)
摘要:重读C Primer Plus ,查漏补缺 重读C Primer Plus,记录遗漏的.未掌握的.不清楚的知识点. 一.概览 1.链接器的作用是将这3个目标元素(目标代码.系统的标准启动代码和库 ...
- 【51nod 1251】 Fox序列的数量(以及带限制插板法讲解)
为什么网上没有篇详细的题解[雾 可能各位聚聚觉得这道题太简单了吧 /kk 题意 首先题目是求满足条件的序列个数,条件为:出现次数最多的数仅有一个 分析 感谢 刚睡醒的 JZ姐姐在咱写题解忽然陷入自闭的 ...
- 在mac上用parallels创建双windows虚拟机调试windows驱动
先创建两个windows 7 虚拟机,一个装windbg作为调试机,一个被调试 1 调试机 1 先装windbg https://developer.microsoft.com/en-us/windo ...
- 「刷题」卡特兰数&prufer序列
1.网格 转换模型,翻折容斥出解. 2.有趣的数列 抽象一下模型,把奇数项当作横坐标,偶数项当作纵坐标,就是从n*n矩阵左下角走到右上角并且每一步x<=y的方案数,发现是卡特兰数,关于gcd,可 ...
- js调用局部打印功能并还原
function printme() { //printMain为要打印的dom元素 window.document.body.innerHTML = document.getElementById( ...
- it公司比较
1:本人西电通院2013届毕业硕士,根据今年找工作的情况以及身边同学的汇总,总结各大公司的待遇如下,吐血奉献给各位学弟学妹,公司比较全,你想去的公司不在这里面,基本上是无名小公司了:但无名小公司有时也 ...
- 花一天时间试玩vsphere6.7(EXSI)服务器版的vmware
花一天时间试玩vsphere6.7(EXSI)服务器版的vmware 要注册账号(2019年11月14注册): 登陆网址:https://my.vmware.com/cn/group/vmware/h ...
- 本地yum配置
yum yum(Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 CentOS 中的 Shell 前端软件包管理器.基于 RPM 包管理,能够从 ...
- 微擎框架商业版 V2.1.2 去后门一键安装版+去除云平台+无附带模块
下载地址:http://dd.ma/AdVvoDu5 关注微信公众号codervip,点击公众号菜单,获取提取码! 这个是一键安装版本,所以微擎安装比较简单,不用大家手动去改数据库了,而且修复上个2. ...