linux cut的用法

问题:

路径名为 /home/ lxy/ hhhhh-a.bbb.cc.d (格式类型固定)

其中 现在我只想要 a.bbb.cc 这一段。

其中 hhhhh- 格式固定 ,a.bbb.cc.d 这一段长度有浮动,但前面的 a. 和后面的 .d 是固定的

解决方法:

1.如果/home/ lxy/ hhhhh-a.bbb.cc.d是文件中的字符串(即echo '/home/ lxy/ hhhhh-a.bbb.cc.d'>test.txt ),可以通过sed -n 's/.*hhhhh-\(.*\)\.d/\1/p' test.txt

 

2.以'-'为分隔符,用cut取第二个字段(只要路径中不包含'-'即可):echo "/home/lxy/hhhhh-a.bbb.cc.d" | cut -d'-' -f2  但该方法只能取出a.bbb.cc.d

 

3.为防止路径中有'-',可以先取出文件名,在使用cut:echo "/home/lxy/hhhhh-a.bbb.cc.d" | awk -F/ '{print $NF}'| cut -d'-' -f2 但该方法只能取出a.bbb.cc.d

 

4.echo "/home/lxy/hhhhh-a.bbb.cc.d" | awk -F'-' '{print $2}' | cut -f 1-3 -d'.'

 

cut

用法:cut 选项 参数

 

选项:

-d:指定字段的分隔符,默认的字段分隔符为“TAB”;

-f:显示指定字段的内容;

-b:仅显示行中指定字节范围的内容;

-c:仅显示行中指定字符范围的内容;

-n:与“-b”选项连用,不分割多字节字符;

--complement:显示指定字段以外的字段

--out-delimiter=<字段分隔符>:指定输出内容是的字段分割符;

 

指定范围的参数意义:

N-:从第N个字节、字符、字段到结尾;

N-M:从第N个字节、字符、字段到第M个(包括M在内)字节、字符、字段;

-M:从第1个字节、字符、字段到第M个(包括M在内)字节、字符、字段。

 

参数:可以是字符串,也可以是文件

 

举栗:

使用-d指定字段分隔符,使用-f获取指定字段

echo "/home/lxy/hhhhh-a.bbb.cc.d" |awk -F/ '{print $NF}'| cut -d'.' -f2       

输出为:bbb

 

echo "/home/lxy/hhhhh-a.bbb.cc.d" | awk -F/ '{print $NF}'|cut -d'.' -f1,2       

输出为:hhhhh-a.bbb

 

echo "/home/lxy/hhhhh-a.bbb.cc.d" | awk -F/ '{print $NF}'|cut -d'.' -f1,2,3

或echo "/home/lxy/hhhhh-a.bbb.cc.d" | awk -F/ '{print $NF}'|cut -d'.' -f1-3

输出为hhhhh-a.bbb.cc

 

使用--complement参数提取指定字段以外的字段

echo "/home/lxy/hhhhh-a.bbb.cc.d" | awk -F/ '{print $NF}'|cut -d'.' -f1-3 --complement

输出为 d

 

使用-c参数获取指定字符范围内的内容

echo "/home/lxy/hhhhh-a.bbb.cc.d" | awk -F/ '{print $NF}'|cut -c5-

h-a.bbb.cc.d

转载于:https://www.cnblogs.com/mianbaoshu/p/10948593.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值