shell之cut命令

shell之cut命令

cut命令

cut的工作就是“剪”,具体的说就是在文件中负责剪切数据用的。
cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段输出

常用参数-d -f

-b:按字节筛选, 输入每行第n个字符(半角,注意如果有中文将乱码)。
-n:取消分割多字节字符(例如中文),仅和-b标志一起使用。(不常用)
-c:按字符筛选, 输入每行第n个字符(适用中文)。
-f:按字段筛选, 默认不加参数-d时,分隔符为‘tab’键,如 -d ' ' -f 2 表示用空格作为分隔符,提取第二列的内容
-d:自定义分隔符,默认是制表符,例如 -d ' ' 表示用空格作为分隔符,-d : 表示用冒号作为分隔符
-s:不打印不包含分隔符的行;比如每行都有空格,并且用空格作为分隔符,那么提取的时候不提取没有空格行的内容

演示

vim cut.txt

chang shen
sha zhen
wo  wo
lai  lai
le  le

切割cut.txt第一列

➜  shell cut -d " " -f 1 cut.txt
chang
sha
wo
lai
le

切割cut.txt第二、三列


➜  shell cut -d " " -f 2 cut.txt
shen
zhen



➜  shell cut -d " " -f 2,3 cut.txt
shen
zhen
 wo
 lai
 le

在cut.txt文件中切割出sha

➜  shell cat cut.txt | grep "sha" | cut -d " " -f 1
sha

选取系统PATH变量值,第2个“:”开始后的所有路径:

➜  shell echo $PATH|cut -d ":" -f 2-
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
➜  shell echo $PATH
/apps/sylar/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

切割ifconfig 后打印的IP地址

➜  shell ifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p'
172.18.90.206
#注:sed 的 -E 选项依赖于具体的 sed 版本。如果 -E 无效,请使用 -r 替代

你可能感兴趣的:(Linux系统编程)