卡饭网 > linux > 正文

Linux中使用cut命令来提取文本的用法指南

来源:本站整理 作者:梦在深巷 时间:2016-04-07 20:31:30

  有时我们经常会遇到这样一些问题:有一页电话号码薄,上面按顺序规则地写着人名、家庭住址、电话、备注等,此时我们只想取出所有人的名字和其对应的电话号码,你有几种方法可以实现呢?

  确实这种纵向定位的方式用常规办法难以实现,这时,cut就可以大显身手了。

  What’s cut?

  子曰:cut命令可以从一个文本文件或者文本流中提取文本列。

  命令用法:

  cut -b list [-n] [file ...]

  cut -c list [file ...]

  cut -f list [-d delim][-s][file ...]

  参数:

  -b, --bytes=LIST

  输出 这些 字节

  -c, --characters=LIST

  输出 这些 字符

  -d, --delimiter=DELIM

  使用 DELIM 取代 TAB 做 字段(field) 分隔符

  -f, --fields=LIST

  输出 这些 字段

  -n

  (忽略)

  -s, --only-delimited

  不显示 没有 分隔符 的 行

  --output-delimiter=STRING

  使用 STRING 作为 输出分隔符, 缺省 (的 输出分隔符) 为 输入分隔符

  --help

  显示 帮助信息, 然后 结束

  --version

  显示 版本信息, 然后 结束

  使用 且 只使用 -b, -c 或 -f 中的 一个 选项. LIST 由 一个 范围 (range) 或 逗号 隔开的 多个 范围 组成. 范围 是 下列 形式 之一:

  N

  第 N 个 字节, 字符 或 字段, 从 1 计数 起

  N-

  从 第 N 个 字节, 字符 或 字段 直至 行尾

  N-M

  从 第 N 到 第 M (并包括 第M) 个 字节, 字符 或 字段

  -M

  从 第 1 到 第 M (并包括 第M) 个 字节, 字符 或 字段

  如果 没有 指定 文件 FILE, 或 FILE 是 -, 就从 标准输入 读取 数据.

  示例:

  代码如下:

  [root@localhost ~]# cat /etc/passwd | cut -b 1 |head -5 #输出文件的第一个字节

  r

  b

  d

  a

  l

  代码如下:

  [root@localhost ~]# cat /etc/passwd | cut -c 1-4 |head -5 #输出文件的前四个字符

  root

  bin:

  daem

  adm:

  lp:x

  代码如下:

  [root@localhost ~]# cat /etc/passwd | cut -f1 -d ':' |head -5 #以:分割文件,输出第一个字段

  root

  bin

  daemon

  adm

  lp

  代码如下:

  # cat a.txt

  ssss affff dddd fe fsc

  rrr f adfa eer ddd

  代码如下:

  # cat a.txt |cut -f1,3 -d $'t' #1,3列

  ssss dddd

  rrr adfa

相关推荐