p.p1 { margin: 0; font: 12px ".PingFang SC Semibold"; color: rgba(53, 53, 53, 1) }
p.p2 { margin: 0; font: 12px "Helvetica Neue" }
p.p3 { margin: 0; font: 12px ".PingFang SC" }
p.p4 { margin: 0; font: 21px ".PingFang SC Semibold"; min-height: 22px }
p.p5 { margin: 0; font: 21px ".PingFang SC Semibold" }
p.p6 { margin: 0; font: 16px ".PingFang SC"; color: rgba(53, 53, 53, 1) }
p.p7 { margin: 0; font: 16px ".PingFang SC"; color: rgba(53, 53, 53, 1); min-height: 19px }
p.p8 { margin: 0; font: 16px ".PingFang SC Semibold"; color: rgba(53, 53, 53, 1) }
p.p9 { margin: 0; font: 14px ".PingFang SC"; color: rgba(53, 53, 53, 1) }
p.p10 { margin: 0; font: 13px ".PingFang SC"; color: rgba(53, 53, 53, 1) }
span.s1 { font: 12px "Helvetica Neue" }
span.s2 { font: 12px ".PingFang SC" }
span.s3 { font: 12px ".PingFang SC"; color: rgba(53, 53, 53, 1) }
span.s4 { color: rgba(53, 53, 53, 1) }
span.s5 { font: 21px ".PingFang SC" }
span.s6 { font: 16px ".PingFang SC" }

问题:

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

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

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

解决方法:

1.使用sed命令:echo '/home/lxy/hhhhh-a.bbb.cc.d'|sed -n 's/.*hhhhh-\(.*\)\.d/\1/p'

2.使用cut命令:echo "/home/lxy/hhhhh-a.bbb.cc.d" | cut -d'-' -f2|cut -d'.' -f1-3

3.使用awk命令:echo "/home/lxy/hhhhh-a.bbb.cc.d" | awk -F'-' '{print $2}'|awk -F'.' '{print $1"."$2"."$3}'

cut用法:

cut 选项 字符串/文件

选项:

  • -d:指定字段的分隔符,默认的字段分隔符为“TAB”;
  • -f:显示指定字段的内容;
  • -b:仅显示行中指定字节范围的内容;
  • -c:仅显示行中指定字符范围的内容;
  • -n:与“-b”选项连用,不分割多字节字符;
  • -s:不打印不包含分割符的行
  • --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
-s:不打印不包含分割符的行

cat aa.txt

aadbdg_arv

aavf

nrra_rr+rr_ee

cut -s -d'_' -f1- aa.txt

aadbdg_arv

nrra_rr+rr_ee

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

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

hhhhh-a*bbb*cc

linux cut的用法的更多相关文章

  1. Linux cut命令用法

    cut是一个选取命令,就是将一段数据经过分析,取出我们想要的.一般来说,选取信息通常是针对“行”来进行分析的,并不是整篇信息分析的. (1)其语法格式为: cut  [-bn] [file] 或 cu ...

  2. Linux中find用法

    Linux中find用法 linux常用命令 find -name april* 在当前目录下查找以april开始的文件 find -name april* fprint file 在当前目录下查找以 ...

  3. (转)linux paste命令用法详解

    linux paste命令用法详解原文:http://www.xfcodes.com/linuxcmd/mulu/10211.htmlinux下paste命令,可用于合并文件的列. 功能说明:合并文件 ...

  4. linux cut

    参考:Linux cut 命令详解_Linux_脚本之家 (jb51.net) 参考:cut命令_Linux cut 命令用法详解:连接文件并打印到标准输出设备上 (linuxde.net)

  5. (转) linux之sort用法

    sort命令是帮我们依据不同的数据类型进行排序,其语法及常用参数格式: sort [-bcfMnrtk][源文件][-o 输出文件] 补充说明:sort可针对文本文件的内容,以行为单位来排序. 参 数 ...

  6. linux mail命令用法

    在Linux系统下mail命令的测试 1. 最简单的一个例子: mail -s test admin@aispider.com 这条命令的结果是发一封标题为test的空信给后面的邮箱,如果你有mta并 ...

  7. linux expect, spawn用法小记

    linux expect, spawn用法小记_IT民工_百度空间 linux expect, spawn用法小记 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://sys ...

  8. linux下automake用法

    linux下automake用法 2017年02月06日 09:21:14 阅读数:3684 标签: makemakefilegnulinux   作为Linux下的程序开发人员,大家一定都遇到过Ma ...

  9. Linux上case用法

    Linux上case用法示例: #!/bin/bash # This is a script for test case ASK_COUNT=$ #从参数获取该变量的值 # if [ -z " ...

随机推荐

  1. C语言printf-(转自shiney)

    1.调用格式为  printf("<格式化字符串>", <参量表>);   其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原样输出; 另 ...

  2. 安装beanstalkd队列问题——No package beanstalkd available

    CentOS7.4安装beanstalkd 时无可用源 No package beanstalkd availableError:Nothing to do 可从以下获取:wget /etc/yum. ...

  3. Python数学建模-02.数据导入

    数据导入是所有数模编程的第一步,比你想象的更重要. 先要学会一种未必最佳,但是通用.安全.简单.好学的方法. 『Python 数学建模 @ Youcans』带你从数模小白成为国赛达人. 1. 数据导入 ...

  4. 新晋总监生存指南三——OKR

    一.什么是OKR 书接上文:新晋总监生存指南二--建立指标 OKR在我们团队正循环大图中占有很重的分量,好的OKR实践同时也是上文中数据指标实践的案例.反向论述可以认为,数据指标建设混乱的团队很难运用 ...

  5. Ubuntu 16.04安装PyCharm

    PyCharm一个是Python集成开发环境,它既提供收费的专业版,也提供免费的社区版本.PyCharm带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试.语法高亮.Proj ...

  6. [leetcode] 45. 跳跃游戏 II(Java)(动态规划)

    45. 跳跃游戏 II 动态规划 此题可以倒着想. 看示例: [2,3,1,1,4] 我们从后往前推,对于第4个数1,跳一次 对于第3个数1,显然只能跳到第4个数上,那么从第3个数开始跳到最后需要两次 ...

  7. Go语言练习---判断闰年以及根据现在的秒数求现在的年月日

    package main import ( "fmt" "math" "time" ) /* @闰年判断 ·封装一个函数判断某一个年份是不是 ...

  8. 201871030138-杨蕊媛 实验二 个人项目—《D{0-1}背包问题》项目报告

    项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/2018CST 这个作业要求链接 https://www.cnblogs.com/nwnu-dai ...

  9. nvJPEG Codec库

    nvJPEG Codec库 nvJPEG库是高性能的GPU加速库,用于解码,编码和转码JPEG格式的图像.nvJPEG2000库用于解码JPEG 2000格式的图像.与单CPU解码相比,依赖nvJPE ...

  10. Kaggle上的犬种识别(ImageNet Dogs)

    Kaggle上的犬种识别(ImageNet Dogs) Dog Breed Identification (ImageNet Dogs) on Kaggle 在本节中,将解决在Kaggle竞赛中的犬种 ...