Linux - Shell - cut: 低配 awk

  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. 充一篇少一篇...

原文地址:https://www.cnblogs.com/xy14/p/12024067.html

时间: 2024-10-27 08:28:46

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

Linux Shell常用技巧(四) awk

Linux Shell常用技巧(四) awk 九.  awk实用功能: 和sed一样,awk也是逐行扫描文件的,从第一行到最后一行,寻找匹配特定模板的行,并在这些行上运行"选择"动作.如果一个模板没有指定动作,这些匹配的行就被显示在屏幕上.如果一个动作没有模板,所有被动作指定的行都被处理.       1.  awk的基本格式:    /> awk 'pattern' filename    /> awk '{action}' filename    /> awk '

Linux Shell常用技巧(五) awk编程

Linux Shell常用技巧(五) awk编程 十一.  awk编程:    1.  变量:    在awk中变量无须定义即可使用,变量在赋值时即已经完成了定义.变量的类型可以是数字.字符串.根据使用的不同,未初始化变量的值为0或空白字符串" ",这主要取决于变量应用的上下文.下面为变量的赋值负号列表: 符号 含义 等价形式 = a = 5 a = 5 += a = a + 5 a += 5 -= a = a - 5 a -= 5 *= a = a * 5 a *= 5 /= a =

Linux Shell编程四剑客-awk

awk[语法] awk [option] pattern action filename program:pattern+action 如果action中有多个语句,需要用;分隔eg:awk 'BEGIN{test="hello gawk";print test}'1.printprint item1,item2, ...    1)逗号分隔符    2)输出的各item可以是字符串,也可以是数值:当前记录的字段.变量或awk的表达式    3)如省略item,相当于print $0;

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

cut  [-bn] [file] 或 cut [-c] [file]  或  cut [-df] [file] 使用说明 cut 命令从文件的每一行剪切字节.字符和字段并将这些字节.字符和字段写至标准输出. 如果不指定 File 参数,cut 命令将读取标准输入.必须指定 -b.-c 或 -f 标志之一. 主要参数 -b :以字节为单位进行分割.这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志. -c :以字符为单位进行分割. -d :自定义分隔符,默认为制表符. -f :与-d一起

Linux Shell脚本入门--cut命令

Linux Shell脚本入门--cut命令 cut cut 命令可以从一个文本文件或者文本流中提取文本列. cut语法 [[email protected] ~]# cut -d'分隔字符' -f fields <==用于有特定分隔字符 [[email protected] ~]# cut -c 字符区间 <==用于排列整齐的信息 选项与参数: -d :后面接分隔字符.与 -f 一起使用: -f :依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思: -c :以字符 (

linux shell必知必会sed、awk

sed是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,这样不断重复,直到文件末尾.文件内容并没有改变,除非你使用重定向存储输出.Sed主要用来自动编辑一个或多个文件:简化对文件的反复操作:编写转换程序等.以下介绍的是Gnu版本的Sed 3.02.   2. 定址   可以通过定址来定位你所希望编辑的行,该地址用数字构成,用逗号分隔

linux基础篇07,linux文本处理cat more less head tail sort uniq grep cut jion sed awk

文本处理cat more less head tail sort uniq grep cut jion sed awk ################################################ cat:concatenate files and print on the standard output 显示文件内容到标准输出(显示器) -e:显示最后一个结尾的字符 -n:显示行编号 [[email protected] ~]# cat -n /etc/shells 1  

LINUX SHELL脚本攻略笔记[速查]

Linux Shell脚本攻略笔记[速查] 资源 shell script run shell script echo printf 环境变量和变量 pgrep shell数学运算 命令状态 文件描述符和重定向 cat 数组和关联数组 alias date 调试脚本 函数和参数 管道 读取命令输出 read 字段分隔符和迭代器 循环 比较和测试 find xargs tr md5sum sha1sum 对目录进行校验 sort uniq tempfile split bash变量匹配切分 exp

Linux shell脚本基础学习详细介绍(完整版)一

Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Linux 脚本编写基础◆1.1 语法基本介绍 1.1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使用/bin/sh来执行程序. 当编辑好脚本时,如果要执行该脚本,还必须使其可执行. 要使脚本可执