zoukankan      html  css  js  c++  java
  • 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”选项连用,不分割多字节字符;
    • -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
  • 相关阅读:
    不常用的cmd命令
    js获取宽度
    Marshaling Data with Platform Invoke 概览
    Calling a DLL Function 之三 How to: Implement Callback Functions
    Marshaling Data with Platform Invoke 之四 Marshaling Arrays of Types
    Marshaling Data with Platform Invoke 之一 Platform Invoke Data Types
    Marshaling Data with Platform Invoke 之三 Marshaling Classes, Structures, and Unions(用时查阅)
    Calling a DLL Function 之二 Callback Functions
    WCF 引论
    Marshaling Data with Platform Invoke 之二 Marshaling Strings (用时查阅)
  • 原文地址:https://www.cnblogs.com/mianbaoshu/p/10948593.html
Copyright © 2011-2022 走看看