cut

cut是一个针对行的数据选取命令

SYNOPSIS

cut [OPTION]... [FILE]... 

OPTION

  • -b  以字节为单位进行分割,如果是多字节的话就需要注意了
  • -c  以字符为单位进行分割
  • -d  自定义分割符,默认为制表符
  • -f  显示哪个区域,与-d一起使用
  • -n  表示一个范围,可与-b和-c一起使用
  • -s  表示不包括那些不含分隔符的行

愉快的就开始吧

1 [root@iZ288fgkcpkZ cut]# tail -5 string.txt 
2 8063952    冰川里的哈密瓜    职员    北京市    90后已婚小鲜肉    406    1    1    1438684854
3 7004053    可乐的厨房    互联网    北京市    90后幸福小咖    717    1    1    1438684854
4 8658245    蛋包饭喵喵    编辑    北京市    90后北京菇凉    465    1    1    1438684854
5 8427541    爱学习的牛妈    自由职业    安徽省    崇尚自由的幸福妈咪    466    1    1    1438684855
6 8724635    四毛的娘亲    全职妈妈    河南省    80后文艺娘亲    467    1    1    1438684856
7 [root@iZ288fgkcpkZ cut]# 

 取出id

[root@iZ288fgkcpkZ cut]# tail -5 string.txt | cut -b -7
8063952
7004053
8658245
8427541
8724635
[root@iZ288fgkcpkZ cut]# tail -5 string.txt | cut -b 1-7
8063952
7004053
8658245
8427541
8724635
[root@iZ288fgkcpkZ cut]# tail -5 string.txt | cut -b 7,6,5,1-4
8063952
7004053
8658245
8427541
8724635
[root@iZ288fgkcpkZ cut]# 

 需要说下-n

n  只取出第n个字节/字符/字段

n-  取出第n个字节/字符/字段(包括n)到行尾

-n  取出第一个字节/字符/字段到第n个字节/字符/字段(包括n)

n-m  取出第n个字节/字符/字段(包括n)到第m个字节/字符/字段(包括m)

n,m  取出第n个字节/字符/字段,取出第m个字节/字符/字段

为什么上面最后一个列子并不是按照我写的顺序取出来的?  因为会先将其排序

 

取出昵称第一个字符

[root@iZ288fgkcpkZ cut]# tail -5 string.txt | cut -b 9,10,11
冰
可
蛋
爱
四
[root@iZ288fgkcpkZ cut]# tail -5 string.txt | cut -b 9,11,10
冰
可
蛋
爱
四
[root@iZ288fgkcpkZ cut]# tail -5 string.txt | cut -c 9
冰
可
蛋
爱
四
[root@iZ288fgkcpkZ cut]# 

 取出整个昵称呢?

[root@iZ288fgkcpkZ cut]# tail -5 string.txt |cut -f 2
冰川里的哈密瓜
可乐的厨房
蛋包饭喵喵
爱学习的牛妈
四毛的娘亲
[root@iZ288fgkcpkZ cut]# tail -5 string.txt| sed 's/	/s/g' |cut -d s -f 2
冰川里的哈密瓜
可乐的厨房
蛋包饭喵喵
爱学习的牛妈
四毛的娘亲
[root@iZ288fgkcpkZ cut]# 

 如果指定了分割符,但是文本中有不包含分割符的行呢?

修改文本

[root@iZ288fgkcpkZ cut]# tail -5 string.txt 
7004053    可乐的厨房    互联网    北京市    90后幸福小咖    717    1    1    1438684854
8658245    蛋包饭喵喵    编辑    北京市    90后北京菇凉    465    1    1    1438684854
8427541    爱学习的牛妈    自由职业    安徽省    崇尚自由的幸福妈咪    466    1    1    1438684855
8724635    四毛的娘亲    全职妈妈    河南省    80后文艺娘亲    467    1    1    1438684856
8523728亮晶晶妈全职妈妈广东省70后幸福宝妈1318111438684854
[root@iZ288fgkcpkZ cut]# 

 还是取出昵称列,用-s可以将不包含分割符的行排除出去

[root@iZ288fgkcpkZ cut]# tail -5 string.txt| cut -f 2
可乐的厨房
蛋包饭喵喵
爱学习的牛妈
四毛的娘亲
8523728亮晶晶妈全职妈妈广东省70后幸福宝妈1318111438684854
[root@iZ288fgkcpkZ cut]# tail -5 string.txt| sed 's/	/s/g' |cut -d s -f 2
可乐的厨房
蛋包饭喵喵
爱学习的牛妈
四毛的娘亲
8523728亮晶晶妈全职妈妈广东省70后幸福宝妈1318111438684854
[root@iZ288fgkcpkZ cut]# tail -5 string.txt| sed 's/	/s/g' |cut -sd s -f 2
可乐的厨房
蛋包饭喵喵
爱学习的牛妈
四毛的娘亲
[root@iZ288fgkcpkZ cut]# 

2015-09-21 12:02:28

原文地址:https://www.cnblogs.com/yingnan/p/4825733.html