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:2:3:4:5
      1:2:3:4:5
      1:2:3:4:5
    2. cutdemo02

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

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

  1. 概述

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

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

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

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

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

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

  1. 概述

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

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

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

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

      > cut -d':' -f1-3,5 cutdemo01
      1:2:3:5
      1:2:3:5
      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. mac自带功能超详细介绍

    mac自带的超实用的功能分享给大家,包含自带的Spotlight(聚焦) 计算器功能,预览的 PDF 压缩功能,切换同一应用的不同窗口等,让您的工作更加轻松. 1.Spotlight(聚焦) 计算器功 ...

  2. 0010 基于DRF框架开发(03 模型序列化器)

    序列化器:是指从数据库提取数据,转化前端所需要的数据格式并返回到前端. 反序列化器:是指把前端传回的数据,转换成数据库需要的格式,存入数据库. DRF提供了两种序列化器: 模型序列化器:是指和模型关联 ...

  3. Cloud插件,链接oracle数据库

    业务场景:客户需要在Cloud中获取第三方系统的数据,但是第三方系统的数据库是oracle,这是就需要连接oracle数据库获取数据了. 需要引用Oracle.ManagedDataAccess.dl ...

  4. 记一个js toUpperCase函数 大小写特性

    toUpperCase()是javascript中小写变大写的函数 "ı".toUpperCase() == 'I',"ſ".toUpperCase() == ...

  5. js秒数倒计时

    代码 /** * 调用回调函数 * @param callback 回调函数体 * @param args 参数 */ execCallback: function (callback, args) ...

  6. java下的slf4j

    一.导读 我们使用log4j框架时,经常会用slf4j-api.在运行时,经常会遇到如下的错误提示: ? 1 2 3 4 5 SLF4J: Class path contains multiple S ...

  7. 南昌邀请赛B题(拉格朗日插值)

    题目链接:https://nanti.jisuanke.com/t/40254 #include<iostream> #include<cstdio> #include< ...

  8. C++-hihoCoder-1142-三分求极值[三分]

    #include <bits/stdc++.h> using namespace std; typedef double db; ; db a,b,c,x,y; db dis2(db X) ...

  9. 《深入理解java虚拟机》读书笔记八——第九章

    第九章 类加载及执行子系统的案例与实战 Q:如果有10个WEB应用程序都是用Spring来进行组织管理的话,可以把Spring放到Common或Shared目录下(Tomcat5.0)让这些程序共享. ...

  10. [TJOI2013] 拯救小矮人- 贪心,dp

    结论:矮的人比高的人先走一定不会使得答案变劣 于是我们排序后,像 0-1 背包那样依次考虑每个人走不走 #include <bits/stdc++.h> using namespace s ...