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.字符 ...
随机推荐
- fenby C语言 P29
野指针 malloc()分配内存: free()释放内存: p=(char*)malloc(100): #include <stdio.h>#include <stdlib.h> ...
- 设计模式C++描述----09.桥接(Bridge)模式
一. 举例 N年前: 计算机最先出来时,软件和硬件是一绑在一起的,比如IBM出了一台电脑,上面有一个定制的系统,假如叫 IBM_Win,这个IBM_Win系统当然不能在HP电脑上运行,同样HP出的HP ...
- Unity资源加载路径及加载方式小结
Unity3D中的资源路径路径属性 路径说明Application.dataPath 此属性用于返回程序的数据文件所在文件夹的路径.例如在Editor中就是Assets了.Application.st ...
- 汇编语言——物理地址=段地址x16+偏移地址,检测点2.2
一.为什么 物理地址=段地址x16+偏移地址? 刚开始学时,我都笨到不明白为什么是2的N次方,咱把物理地址就当数字,计算机中数字是由很多位0或1自由组合的, 而每一位上要么是0要么是1,只有这两种情况 ...
- vue 合成图片
目的:将二维码图片和背景图片合成变成一张图片 方法一: 引入依赖 cnpm install qrcanvas --save cnpm install html2canvas --save 具体代码: ...
- XSS与CSRF详解
XSS与CSRF详解 随着Web2.0.社交网络.微博等等一系列新型的互联网产品的诞生,基于Web环境的互联网应用越来越广泛,企业信息化的过程中各种应用都架设在Web平台上,Web业务的迅速发展也引起 ...
- Mysql常用数据类型归纳总结1
一直在用Mysql数据库,Mysql的数据类型也最常打交道的.但关于Mysql的一些常用数据类型了解程度仅限于一知半解,仅仅能满足满足于平时一些最简单的操作.而Mysql常用数据类型的定义以及规范理解 ...
- Centos6 Tengine开启http2传输协议
1.前言 最近在优化网站的访问速度,为网站开启http2协议,这个协议有什么优点呢?如下: http2是下一代的传输协议,以后都会普遍用它,是一个趋势. http2有多路复用特性,意思是访问一个域名下 ...
- RocketMQ 消息发送system busy、broker busy原因分析与解决方案
目录 1.现象 2.原理解读 2.1 RocketMQ 网络处理机制概述 2.2 pair.getObject1().rejectRequest() 2.3 漫谈transientStorePoolE ...
- [考试反思]1030csp-s模拟测试94:未知
排名也未知.第1或第5. 分数也未知,300或260. 人生真是大起大落... 啊啊啊啊啊我好感动啊竟然重测了一次----- 评测机怎么测怎么RE,本机怎么测怎么AC(任意编译指令,任意评测平台) 结 ...