基本文本处理,命令详解

By admin in 美高梅手机版4858 on 2019年4月15日

基本文本处理,命令详解。Linux cut命令

切割,轻松的取列命令 -d钦赐分隔符 -f数字取第几列。-f 三, 6

      -c按字符取。

Linux cut命令用于展现每行从伊始算起 num一 到 num2 的文字。

一、作用

cut命令是二个精选命令,其作用是将文件中的每一行”字节” ”字符” ”字段”
举行划分,采纳大家须要的,并将这么些采用好的数目输出至正规输出

cut 
 功效:按列提取文件
 参数: -d 指明列分隔符 -f 选拔输出的区域 -c 钦点字符地方
  -b
:以字节为单位进行剪切。那些字节地方将忽略多字节字符边界,除非也钦定了
-n 标志。
  -c :以字符为单位开始展览剪切。
  -d :自定义分隔符,暗许为制表符。
  -f :与-d1起使用,钦命展现哪个区域。
  -n :撤除分割多字节字符。仅和 -b
标志一道行使。就算字符的终极叁个字节落在由 -b 标志的 List
参数提醒的<br />范围之内,该字符将被写出;不然,该字符将被解决
 语法: cut -b 8,3-5
  三-伍,八:cut命令要是应用了-b选项,那么执行此命令时,cut会先把-b后边全数的定点进行从小到大排序,然后再领取。可无法颠倒定位的依次哦 
  cut -b -3
  -三表示从第一个字节到第二个字节
  cut -b 3-
  三-表示从第五个字节到行尾
  cut -b -3,3-
  输出整行,不会冒出接二连三八个重叠的
  cut -c 
  -c则会以字符为单位,输出符合规律;而-b只会傻傻的以字节(伍个人二进制位)来总结,输出便是乱码.
当遭受多字节字符时,能够选拔-n选项,

骨干文本处理-cut

语法

cut  [-bn] [file]
cut [-c] [file]
cut [-df] [file]

接纳表达:

cut
命令从文件的每1行剪切字节、字符和字段并将那个字节、字符和字段写至正规输出。

假定不点名 File 参数,cut 命令将读取标准输入。必须钦点 -b、-c 或 -f
标志之壹。

参数:

  • -b
    :以字节为单位张开剪切。那么些字节地点将忽略多字节字符边界,除非也钦点了
    -n 标志。
  • -c :以字符为单位开展划分。
  • -d :自定义分隔符,暗许为制表符。
  • -f :与-d壹起行使,钦命显示哪个区域。
  • -n :撤销分割多字节字符。仅和 -b
    标志联合使用。假使字符的最后一个字节落在由 -b 标志的 List
    参数提醒的
    限制以内,该字符将被写出;不然,该字符将被拔除

二、格式

cut -[n]b file 
cut -c file 
cut -d[分隔符] -f[域] file

cut -d : -f 1,3-5

 

实例

美高梅手机版4858 1美高梅手机版4858 2

当你执行who命令时,会输出类似如下的内容:

$ who
rocrocket :0           2009-01-08 11:07
rocrocket pts/0        2009-01-08 11:23 (:0.0)
rocrocket pts/1        2009-01-08 14:15 (:0.0)
如果我们想提取每一行的第3个字节,就这样:

$ who|cut -b 3
c
c

View Code

 

三、参数解释

-b(bytes)
:以字节为单位开始展览剪切。那个字节地点将忽略多字节字符边界,除非也内定了
-n 标志。 
-c(characters) :以字符为单位举办剪切。 
-d :自定义分隔符,暗中同意为制表符。 
-f(filed) :与-d一起行使,钦点呈现哪个区域。 
-n :打消分割多字节字符。仅和 -b
标志2头利用。即便字符的终极2个字节落在由 -b 标志的 List 参数提醒的
限定之内,该字符将被写出;不然,该字符将被扫除。

  提取根据:分割的首先列,第二列到第4列
  sed -n l file
  空格到底是由若干个空格组成的照旧由3个制表符组成,-n 后L的小写字母

最近我们讲课的find、grep、sort、uniq命令都是行文本处理工科具,不过无数时候我们又想知道这么些行中某一列文本的内容可能唯有部分列的故事情节对大家是一蹴而就的,那样的情况又该怎么样处理呢,怎样知道特定的列的剧情呢?cut命令就该上台了。

四、实例分析

新建1个test一.txt,如下

557adfhg
bcd5464b
135465453456
233546576
[root@localhost shell]# 
  • 1
  • 2
  • 3
  • 4
  • 5

  • 1
  • 2
  • 3
  • 4
  • 5

新建二个test二.txt,如下

[root@localhost shell]# cat test2.txt 
星期一
星期二
星期三
星期四
星期五
星期六
星期日
[root@localhost shell]# 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

 

  www.2cto.com  

1) -b

1、cut命令

1.私分单个字节

如下,只剪切txt中的每一行的率先个字节

[root@localhost shell]# cut -b 1 test1.txt 
5
b
1
2
[root@localhost shell]# 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 美高梅手机版4858 ,6

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

cut
命令从文件的每1行剪切字节、字符和字段并将那些字节、字符和字段写至正规输出。即便不点名
File 参数,cut 命令将读取标准输入。

2.瓜分多个字节

细分多个字符有许多方法, 
如 -b 1,三,5 //剪切每1行第 一 三 多少个字符 (示例一) 
如 -b 一-伍 //剪切每1行第 一-伍 个字符 (示例贰) 
如 -b -5 //剪切每1行第 壹-5 个字符 (示例3) 
如 -b 三- //剪切每一行第 三个字符现在的 (示例肆)

示例1:

[root@localhost shell]# cut -b 1,3,5 test1.txt 
57d
bd4
156
234
[root@localhost shell]# 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

示例2:

[root@localhost shell]# cut -b 1-5 test1.txt 
557ad
bcd54
13546
23354
[root@localhost shell]# 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

示例3:

[root@localhost shell]# cut -b -5 test1.txt 
557ad
bcd54
13546
23354
[root@localhost shell]# 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

示例4:

[root@localhost shell]# cut -b 3- test1.txt 
7adfhg
d5464b
5465453456
3546576
[root@localhost shell]# 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

 

3.剪切字符

第1依据地点的事例对test二.txt展开操作,看有何情状

[root@localhost shell]# cut -b 2 test2.txt 
�
�
�
�
�
�
�
[root@localhost shell]# 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

现身了乱码的场所,因为-b
只是针对性字节实行裁剪,对二个中中原人民共和国字进行字节裁剪,获得的结果自然是乱码,若想利用
-b 命令对字节举办裁剪,那么则必要选用 -n
选项,此选项的效果是吊销分割多字节字符。

[root@localhost shell]# cut -nb 3 test2.txt 

星
星
星
星
星
星
[root@localhost shell]# cut -nb 3,6  test2.txt 
星
星期
星期
星期
星期
星期
星期
[root@localhost shell]# cut -nb 3,6,9  test2.txt 
星期
星期二
星期三
星期四
星期五
星期六
星期日
[root@localhost shell]# cut -nb 3,6,9,12  test2.txt 
星期一
星期二
星期三
星期四
星期五
星期六
星期日
[root@localhost shell]# 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

cut命令格式:

2) -c

-c的功用就是分开字符,和地方的 -nb 有个别接近

[root@localhost shell]# cut -c 1 test2.txt 

星
星
星
星
星
星
[root@localhost shell]# cut -c 2 test2.txt 
星
期
期
期
期
期
期
[root@localhost shell]# cut -c 1-3 test2.txt 
星期
星期二
星期三
星期四
星期五
星期六
星期日
[root@localhost shell]# 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

 

3)-f

地点的-b -c
只是针对性于格式固定的数码中剪切,可是对于一些格式不固定的,就不曾艺术获得到我们想要的数据,由此便有了
-f 域的定义。

示例1:

[root@localhost shell]# cat /etc/passwd | head -n 3
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[root@localhost shell]# 
  • 1
  • 2
  • 3
  • 4
  • 5

  • 1
  • 2
  • 3
  • 4
  • 5

譬如说将地点的首先个 : 前边的字符给剪切出来,那么大家就可以运用 -d
命令,钦命其分割符为 : 然后再选取第一个域内的始末就能够,如下

[root@localhost shell]# cat /etc/passwd | head -n 3 | cut -d : -f 1
root
bin
daemon
[root@localhost shell]# 
  • 1
  • 2
  • 3
  • 4
  • 5

  • 1
  • 2
  • 3
  • 4
  • 5

示例2: 
剪切ip地址,如下:

cut {  -b List [  -n ] |  -c List |  -f List [  -s ] [  -d
Character ] } [ File … ]

参数:

        -b List    
内定字节地方。那几个字节地点将忽略多字节字符边界,除非也钦定了 -n 标志。

 -c List     钦定字符地点。例如,如若你钦点 -c 壹-7贰,cut
命令将写出文件每一行的头 72 个字符。

  www.2cto.com  

  -d Character     使用 Character 变量钦赐的字符作为钦命 -f
标志时的字段定界符。您必须在对 shell
有异乎平日含义的字符(比如空格字符)上加上引号。

 

  -f List    
钦命文件初级中学完成学业生升学考试虑被定界符(缺省状态下为制表符)隔开分离的字段的列表。例如,假设你内定-f 一,7,cut
命令将仅写出每种行的第1和第多个字段。若是行中不含有字段定界符,cut
命令将透过它们而不对其展开别的操作(对表格的副标题有用),除非钦赐了 -s
标志。

 

  -n     打消分割多字节字符。仅和 -b
标志协助举行使用。要是字符的最后一个字节落在由 -b 标志的 List
参数提醒的限定之内,该字符将被写出;不然,该字符将被排除。

 

 -s     打消不含有定界符的行。仅和 -f 标志一起行使。

 

  说明:

 

cut命令必须内定 -b、-c 或 -f 标志之壹。List
参数为1个以逗号分隔、以空格分隔或连字符分隔的平头的列表(顺序递增)。连字符分隔符表示范围。以下条目是
List 参数的局地演示,它能够用来替代字节、字符或字段: 

 

1,4,7

1-3,8

-5,10

3-

里头 -五 为从第一个到第伍个的简写情势,3-
为从第六个到最后三个的简写情势。

 

 

2、使用例子

1、# cat /etc/passwd |grep bash

root:x:0:0:root:/root:/bin/bash

beckham:x:500:500:beckhamkuang:/home/beckham:/bin/bash

king:x:501:501::/home/king:/bin/bash

mysql:x:100:103:MySQL server:/var/lib/mysql:/bin/bash

以: 分割拿第一列与第八列

# cut -d ‘:’ -f 1,7  /etc/passwd |grep bash

root:/bin/bash

beckham:/bin/bash

king:/bin/bash

mysql:/bin/bash

贰、那里作者使用 -d 参数钦赐了字段分割符为“:”

# tail -3 /etc/passwd|cut -f 1,6 -d’:’

beckham:/home/beckham

king:/home/king

mysql:/var/lib/mysql

 

三、假诺想精晓系统中种种用户的home目录都是怎样,能够在/etc/password文件查找,但是来得全体的剧情又比较乱,大家如若找到须求的始末就足以了:

# tail -3 /etc/passwd|cut -f 1,6 -d’:’

beckham:/home/beckham

king:/home/king

mysql:/var/lib/mysql

 

后边大家讲课的find、grep、sort、uniq命令都以行文本处理工具,可是不少时候大家又想精晓这个行中某1列文本的内容或是…

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有