cut - 在文件的每一行中提取片断
在 每个文件 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 是 -, 就从 标准输入 读取 数据.
例1
[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
例2
# 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
例3
# cat file.txt
unix or linux os
is unix good os
is linux good os
# cut -c4 file.txt #将所有行的第四个字符打印出来。
x
u
l
# cut -c4,6 file.txt #将每一行的第四个和第六个字符打印出来
xo
ui
ln
# cut -c4-7 file.txt #将第四个到第七个字符打印出来,注意是闭区间。
x or
unix
linu
# cut -c-6 file.txt #将每一行的前六个字符都打印出来
unix o
is uni
is lin
# cut -c10- file.txt #将从起始位置到行末的所有文本都打印出来
inux os
ood os
good os
# cut -d ' ' -f2 file.txt #定义空格为一行的分隔符,并将每一行的第二个字段打印出来
or
unix
linux
# cut -d ' ' -f2,3 file.txt #将第二个字段和第三个字段打印出来
or linux
unix good
linux good
# cut -d ' ' -f1-3 file.txt #将第一个字段、第二个字段、第三个字段的内容都打印出来
# cut -d ' ' -f-3 file.txt #将前三个字段都打印出来
评论