1. 概述

    1. 简述 shell 命令行工具 cut
  2. 背景

    1. 偶尔需要用 awk 来筛选特定的列

      1. awk 很是强大
      2. 但是强大的背后, 却伴随着复杂
        1. 其实同样的功能, awk 也没有复杂多少
    2. 如果是 简单的任务, cut 工具完全是可以胜任的

      1. 切割行内的特定位置
      2. 切割行内的特定字段
      3. 描述可能不是很准确, 下面会有例子

1. 准备

  1. os

    1. centos7
  2. 文件

    1. cutdemo01

      1. 1:2:3:4:5
      2. 1:2:3:4:5
      3. 1:2:3:4:5
    2. cutdemo02

      1. 1 2 3 4 5
      2. 1 2 3 4 5
      3. 1 2 3 4 5

2. 场景1: 切割行内的特定位置

  1. 概述

    1. 想切割行内的特定字符
  2. 命令

    1. 命令1: 切割单个字符

      1. # -c 表示切割行内的 特定字符
      2. # 下标从 1 开始
      3. # 如果超出范围, 会返回 空内容
      4. > cut -c1 cutdemo01
      5. 1
      6. 1
      7. 1
    2. 命令2: 切割连续字符

      1. # 下标从 1 开始, 3 结束
      2. > cut -c1-3 cutdemo01
      3. 1:2
      4. 1:2
      5. 1:2
    3. 命令3: 切割不连续字符

      1. # 下标从 1 开始, 3 结束, 外加第 5 个字符
      2. > cut -c1-3,5 cutdemo01
      3. 1:23
      4. 1:23
      5. 1:23

3. 场景2: 切分行内特定字段

  1. 概述

    1. 类似 awk 的切割方式
  2. 命令

    1. 命令1: 切割特定分隔符下的字段

      1. -d 指定分隔符
      2. -f 指定字段
      3. > cut -d':' -f 1 cutdemo01
      4. 1
      5. 1
      6. 1
    2. 命令2: 切割特定分隔符下的连续字段

      1. # -f 类似 之前的 -c
      2. # 结果中, 每个字段, 会用 -d 指定的分隔符隔开
      3. > cut -d':' -f 1-3 cutdemo01
      4. 1:2:3
      5. 1:2:3
      6. 1:2:3
    3. 命令3: 切割特定分隔符下的不连续字段

      1. > cut -d':' -f1-3,5 cutdemo01
      2. 1:2:3:5
      3. 1:2:3:5
      4. 1:2:3:5
  3. 疑问

    1. 如果要用 tab 分列, 命令行打不出 tab, 用 \t 转义也不好使, 该怎么办

      1. 可以看看 man 命令

        1. 不带 -d, 默认就是用 tab 来分
    1. cut 只能以 一个字符 作为分隔符

      1. 所以可能会有 两种可能会坑

        1. 需要 连续多个字符, 做分隔符
        2. 同时使用 多种字符, 做分隔符
      2. 解决

        1. 使用 awk

ps

  1. ref

    1. Linux Shell脚本编程--cut命令

      1. 讲得很简单
    2. cut与awk的区别

      1. 给了点启发, 让我认识到 awk 的强大
  2. 最近魂不守舍, 不知道写啥

    1. 拿之前的东西来充数

      1. 充一篇少一篇...

Linux - Shell - cut: 低配 awk的更多相关文章

  1. linux shell cut 命令

    cut命令 cut命令用于从文件或者标准输入中读取内容并截取每一行的特定部分并送到标准输出. 截取的方式有三种:一是按照字符位置,二是按照字节位置,三是使用一个分隔符将一行分割成多个field,并提取 ...

  2. Linux shell - cut命令用法(转载)

    cut  [-bn] [file] 或 cut [-c] [file]  或  cut [-df] [file] 使用说明 cut 命令从文件的每一行剪切字节.字符和字段并将这些字节.字符和字段写至标 ...

  3. Linux shell cut 命令详解

    详细资料请参考:博客园骏马金龙 https://www.cnblogs.com/f-ck-need-u/p/7521357.html cut命令将行按指定的分隔符分割成多列,它的弱点在于不好处理多个分 ...

  4. linux shell 正则表达式(BREs,EREs,PREs)的比较

    原文 :   linux shell 正则表达式(BREs,EREs,PREs)差异比较 在使用 linux shell的实用程序,如awk,grep,sed等,正则表达式必不可少,他们的区别是什么 ...

  5. Linux笔记 #08# shell编程从零开始到低配学生管理系统

    先熟悉一下基本语法(运行环境是装git的时候一起装的那个windows下的bash): #!/bin/bash # 实现两个函数 # appendToFile()追加一行到文件 # readFile( ...

  6. Linux Shell脚本入门--cut命令

    Linux Shell脚本入门--cut命令 cut cut 命令可以从一个文本文件或者文本流中提取文本列. cut语法 [root@www ~]# cut -d'分隔字符' -f fields &l ...

  7. 【转】Awk 命令学习总结、AWk命令系列学习(linux shell)

    前面的话 学习linux 的同人,都知道linux shell文本处理能力非常强大.有一组强大的文本处理工具:grep,sed,awk . 其中grep 经常用作查找匹配文本.sed用作文本编辑替换. ...

  8. linux shell必知必会sed、awk

    sed是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往 ...

  9. Awk 命令学习总结、AWk命令系列学习(linux shell)

    AWK基本语法 下面没有提到awk命令怎么使用了,你可以通过 运行:awk –h 查询到所有命令及参数!下面把awk作为一门语言分节介绍. linux awk 内置变量使用介绍   awk语言中,怎么 ...

随机推荐

  1. Python-Django学习笔记(四)-views的编写以及urls分发器的配置

    MTV中的V表示的是Views,视图函数(或简称视图)只是一个Python函数,它接受Web请求并返回Web响应. 通俗的理解可以理解为后端控制器. (响应可以是网页的HTML内容,重定向,404错误 ...

  2. 变量 Variables

    是为了存储(store)程序(program)运算过程中的一些信息(informations),为了方便日后调用.操作和更改 变量名应该简明,见名识意,让读者和我们自己能更清晰的了解 如果我们把变量看 ...

  3. pycharm+anaconda在Mac上的配置方法 2019.11.29

    内心os: 听人说,写blog是加分项,那他就不是浪费时间的事儿了呗 毕竟自己菜还是留下来东西来自己欣赏吧 Mac小电脑上进行python数据开发环境的配置 首先下载Anaconda,一个超好用的数据 ...

  4. 强烈推荐一款强大的公式编辑器软件AxMath

    Axmath教程请移步:https://www.cnblogs.com/coco56/p/11759578.html

  5. MySQL的聚合函数

    MySQL的聚合函数 网站:https://www.runoob.com/mysql/mysql-functions.html 函数名 功能描述 count() 计数 sum() 求和 avg() 平 ...

  6. 查看Spark与Hadoop等其他组件的兼容版本

    安装与Spark相关的其他组件的时候,例如JDK,Hadoop,Yarn,Hive,Kafka等,要考虑到这些组件和Spark的版本兼容关系.这个对应关系可以在Spark源代码的pom.xml文件中查 ...

  7. Error Code : 1064 You have an error in your SQL syntax; check the manual that corresponds to your My

    转自:https://blog.csdn.net/haha_66666/article/details/78444457 Query : select * from order LIMIT 0, 10 ...

  8. 使用yum安装报错:[Errno 256] No more mirrors to try

    背景:我使用yum方式安装软件时,比如zabbix这种软件,我们在安装时一般都是直接到zabbix官网,按照官方的步骤进行安装,但是有一个问题,官方的服务器不在国内,时常会在安装时导致超时报错.此时解 ...

  9. SimpleDateFormat中YYYYmmDDhhMMss大小写问题-获取不到正确时间以及常见的格式串

    1.问题解决: SimpleDateFormat sf = new SimpleDateFormat("YYYYmmDDhhMMss");String transTime = &q ...

  10. C++中的参数类型

    C++中的参数类型 数组 数组是相同类型数据的集合.引入数组就不需要在程序中定义大量的变量,大大减少程序中变量的数量,使程序精炼,而且数组含义清楚,使用方便,明确地反映了数据间的联系.许多好的算法都与 ...