码迷,mamicode.com
首页 > 其他好文 > 详细

[第三章]文档操作的命令-更新....

时间:2015-08-28 17:01:52      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:

一、针对文档操作的命令

  • 一般对文档操作的命令比较常用:cat、less、head、tail、grep、cut、sort、wc、uniq、tee、tr、split、sed、awk 其中 grep、sed、awk是正则表达式必须掌握的工具

(1) cut 命令

  • cut命令用来截取某一个字段,其格式为:“cut -d ‘分隔符’ [-cf] n” ,这里的"n" 是数字,这个命令拥有以下选项
  •     -d        <==后面跟分割字符,分割字符要用单引号括起来
  •     -c        <==后面接的是第几个字符
  •     -f         <==后面接的是第几个区块
  • -d选项后面加冒号作为分隔符,“-f 1”表示截取第一段,“-f”和“1”之间的空格可有可无。

[root@Shell ~]# cat /etc/passwd | cut -d ‘:‘ -f 1 | head -n5        <==查看密码文件,截取第一段,显示五列
root
bin
daemon
adm
lp
[root@Shell ~]# head -n2 /etc/passwd | cut -d ‘:‘ -f 3,5,8        <==查看密码文件,截取第三、五、八段
0:root
1:bin
  • -c选项后面可以是1个数字n,也可以是一个区间n1-n2,还可以是多个数字n1、n2和n3
[root@Shell ~]# head -n2 /etc/passwd | cut -c2        <==打印密码文件的前两行并截取前两行的第二段
o
i
[root@Shell ~]# head -n2 /etc/passwd | cut -c1        <==打印密码文件的前两行并截取前两行的第一段
r
b
[root@Shell ~]# head -n2 /etc/passwd | cut -c1-10        <==打印密码文件的前两行并截取前两行的第一段到第十段
root:x:0:0
bin:x:1:1:
[root@Shell ~]# head -n2 /etc/passwd | cut -c5-10        <==打印密码文件的前两行并截取前两行的第五段到第十段
:x:0:0
x:1:1:
[root@Shell ~]# head -n2 /etc/passwd | cut -c -3           <==打印密码文件的前两行并截取前两行的前三段
roo
bin
[root@Shell ~]# head -n2 /etc/passwd | cut -c 3-            <==打印密码文件的前两行并截取前两行的第三到末尾
ot:x:0:0:root:/root:/bin/bash
n:x:1:1:bin:/bin:/sbin/nologin
[root@Shell ~]# head -n2 /etc/passwd | cut -c3,5-8         <==打印密码文件的前两行并截取前两行的第三段和第五段到第八段
o:x:0
nx:1:

(2)soft命令

  • sort命令用来做排序,其格式为:“sort [-t 分隔符] [-kn1,n2] [-nru]”,其选项如下
  •     -t        <==后面跟分隔符,作用跟cut的-d选项一样
  •     -n        <==表示使用纯数字排序
  •     -r        <==表示反向排序
  •     -u        <==表示去重复
  •     -kn1,n2        <==表示由n1区间排序到n2区间,可以只写-kn1,即对n1字段排序
  • 如果sort不加任何选项,则从首字符向后依次按ASCII码进行比较,最后他们将升序输出
[root@Shell ~]# head -n5 /etc/passwd |sort         <==打印/etc/passwd文件的前5行并sort排序,最后以ASCII码进行排序,以升序输出
adm:x:3:4:adm:/var/adm:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
  • -t选项后面跟分隔符,-k选项后面跟单个数字表示对第几个区域的字符串排序 ,-n选项则表示使用纯数字排序
[root@Shell ~]# head -n5 /etc/passwd | sort -t: -k3 -n  
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:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
  • -r选项则反向排序
[root@Shell ~]# cat 123.txt                <==查看并打印 123.txt
111111111111
33333333333
222222222222
444444444444
[root@Shell ~]# cat 123.txt | sort -r                <==查看123.txt并反向排序
444444444444
33333333333
222222222222
111111111111

 

(3)WC命令

  • wc命令用于统计文档的行数、字符数或单词数。其选项如下
  •     -l        <==统计行数
  •     -m       <==统计字符数
  •     -w        <==统计单词数
  •     注释:如果不加任何选项则会把行数、字符数、单词数依次输出
[root@Shell ~]# wc /etc/passwd                <==不加任何参数会把行数、字符数、单词数依次输出
 21  27 942 /etc/passwd
[root@Shell ~]# wc -l /etc/passwd                <==显示/etc/passwd文档中的行数
21 /etc/passwd
[root@Shell ~]# wc -m /etc/passwd                <==显示/etc/passwd文档中的字符数
942 /etc/passwd
[root@Shell ~]# wc -m /etc/passwd                <==显示/etc/passwd文档中的单词数
942 /etc/passwd

(4)uniq命令

  • uniq命令用来删除重复的行,该命令只有-c选项比较有常用,它表示统计重复的行数,并把行数写在最前面
[root@Shell ~]# uniq test.txt               <==不加任何选项,正常输出 test.txt
1111
2222
3333
2222
3333
[root@Shell ~]# sort test.txt | uniq               <==先进行sort 排序然后再去除重复的行
1111
2222
3333
[root@Shell ~]# sort test.txt | uniq -c            <==先进行sort 排序然后再去除重复的行,并显示多少条重复数
      1 1111
      2 2222
      2 3333

[第三章]文档操作的命令-更新....

标签:

原文地址:http://www.cnblogs.com/vforbox/p/4766741.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!