Shell正则表达式 cut

grep行提取,cut列提取

cut命令

1
2
3
4
5
6
7
8
9
10
11
cut [选项] 文件名
选项
-f 列号:提取第几列(从1开始)
-d 分隔符:按照指定分隔符分割列 默认为tab
cut -f 列号,列号 文件名 (多个列号用逗号隔开;这个方法默认的文件以TAB制表符)
cut -f 列号,列号 -d "指定的分隔符" 文件名
grep "bin/bash" /etc/passwd 可以登录的用户
grep "bin/bash" /etc/passwd | grep -v "root" 排除root的可登录用户
grep "bin/bash" /etc/passwd | grep -v "root" | cut -f 1 -d ":" 提取非root登录用户用户名

cut命令的局限性

用cut截取比较规律的文件,用默认制表符或其他符号作为分隔符,可以方便截取,如果是用空格或多个空格做分隔符,就会有问题

1
2
df -h | cut -d " " -f 1,3
无法正确分隔多个空格,只能以一个空格分隔