Linux - Shell - cut: 低配 awk
概述
- 简述 shell 命令行工具 cut
背景
偶尔需要用 awk 来筛选特定的列
- awk 很是强大
- 但是强大的背后, 却伴随着复杂
- 其实同样的功能, awk 也没有复杂多少
如果是 简单的任务, cut 工具完全是可以胜任的
- 切割行内的特定位置
- 切割行内的特定字段
- 描述可能不是很准确, 下面会有例子
1. 准备
os
- centos7
文件
cutdemo01
1:2:3:4:5
1:2:3:4:5
1:2:3:4:5
cutdemo02
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
2. 场景1: 切割行内的特定位置
概述
- 想切割行内的特定字符
命令
命令1: 切割单个字符
# -c 表示切割行内的 特定字符
# 下标从 1 开始
# 如果超出范围, 会返回 空内容
> cut -c1 cutdemo01
1
1
1
命令2: 切割连续字符
# 下标从 1 开始, 3 结束
> cut -c1-3 cutdemo01
1:2
1:2
1:2
命令3: 切割不连续字符
# 下标从 1 开始, 3 结束, 外加第 5 个字符
> cut -c1-3,5 cutdemo01
1:23
1:23
1:23
3. 场景2: 切分行内特定字段
概述
- 类似 awk 的切割方式
命令
命令1: 切割特定分隔符下的字段
-d 指定分隔符
-f 指定字段
> cut -d':' -f 1 cutdemo01
1
1
1
命令2: 切割特定分隔符下的连续字段
# -f 类似 之前的 -c
# 结果中, 每个字段, 会用 -d 指定的分隔符隔开
> cut -d':' -f 1-3 cutdemo01
1:2:3
1:2:3
1:2:3
命令3: 切割特定分隔符下的不连续字段
> cut -d':' -f1-3,5 cutdemo01
1:2:3:5
1:2:3:5
1:2:3:5
疑问
- 如果要用 tab 分列, 命令行打不出 tab, 用 \t 转义也不好使, 该怎么办
- 可以看看 man 命令
- 不带 -d, 默认就是用 tab 来分
- 可以看看 man 命令
- 如果要用 tab 分列, 命令行打不出 tab, 用 \t 转义也不好使, 该怎么办
坑
- cut 只能以 一个字符 作为分隔符
所以可能会有 两种可能会坑
- 需要 连续多个字符, 做分隔符
- 同时使用 多种字符, 做分隔符
解决
- 使用 awk
- cut 只能以 一个字符 作为分隔符
ps
ref
-
- 讲得很简单
-
- 给了点启发, 让我认识到 awk 的强大
-
最近魂不守舍, 不知道写啥
- 拿之前的东西来充数
- 充一篇少一篇...
- 拿之前的东西来充数
Linux - Shell - cut: 低配 awk的更多相关文章
- linux shell cut 命令
cut命令 cut命令用于从文件或者标准输入中读取内容并截取每一行的特定部分并送到标准输出. 截取的方式有三种:一是按照字符位置,二是按照字节位置,三是使用一个分隔符将一行分割成多个field,并提取 ...
- Linux shell - cut命令用法(转载)
cut [-bn] [file] 或 cut [-c] [file] 或 cut [-df] [file] 使用说明 cut 命令从文件的每一行剪切字节.字符和字段并将这些字节.字符和字段写至标 ...
- Linux shell cut 命令详解
详细资料请参考:博客园骏马金龙 https://www.cnblogs.com/f-ck-need-u/p/7521357.html cut命令将行按指定的分隔符分割成多列,它的弱点在于不好处理多个分 ...
- linux shell 正则表达式(BREs,EREs,PREs)的比较
原文 : linux shell 正则表达式(BREs,EREs,PREs)差异比较 在使用 linux shell的实用程序,如awk,grep,sed等,正则表达式必不可少,他们的区别是什么 ...
- Linux笔记 #08# shell编程从零开始到低配学生管理系统
先熟悉一下基本语法(运行环境是装git的时候一起装的那个windows下的bash): #!/bin/bash # 实现两个函数 # appendToFile()追加一行到文件 # readFile( ...
- Linux Shell脚本入门--cut命令
Linux Shell脚本入门--cut命令 cut cut 命令可以从一个文本文件或者文本流中提取文本列. cut语法 [root@www ~]# cut -d'分隔字符' -f fields &l ...
- 【转】Awk 命令学习总结、AWk命令系列学习(linux shell)
前面的话 学习linux 的同人,都知道linux shell文本处理能力非常强大.有一组强大的文本处理工具:grep,sed,awk . 其中grep 经常用作查找匹配文本.sed用作文本编辑替换. ...
- linux shell必知必会sed、awk
sed是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往 ...
- Awk 命令学习总结、AWk命令系列学习(linux shell)
AWK基本语法 下面没有提到awk命令怎么使用了,你可以通过 运行:awk –h 查询到所有命令及参数!下面把awk作为一门语言分节介绍. linux awk 内置变量使用介绍 awk语言中,怎么 ...
随机推荐
- ansible-yaml语法
1. 基础语法 - yaml结果通过空格来展示 - 数组使用"- "来表示 //注意:-后边要有一个空格 - 键值对使用": "来表示 //注意::后边要有一个 ...
- 【H5适配 笔记1】rem适配
设备像素比(dpr)= 物理像素(手机渲染像素.分辨率)/设备独立像素(手机所显示元素的大小) 视口(viewport) 布局视口(获取浏览器布局视口高度,包括内边距,但不包括垂直滚动条.边框和外边距 ...
- Linux 常用命令 服务器间scp 用户 export 创建文件、软连接
获取外网ip curl icanhazip.com 服务器间的 文件 复制 scp root@ip:/源目录 目标目录 软连接 查看软连接 ls -li 创建软连接 ln -s 源文件 目标文件 -s ...
- Educational Codeforces Round 82 (Rated for Div. 2) A-E代码(暂无记录题解)
A. Erasing Zeroes (模拟) #include<bits/stdc++.h> using namespace std; typedef long long ll; ; in ...
- Mysql分库分表导出导入和数据量统计测试
需求:添加创建了分库分表后,业务可能将数据已经写入,但未来得及接入到otter汇总库.接入汇总库前需要初始化这部分数据. 1.导出 ip_port_list ) len=${#ip_port_list ...
- 4P遇上了5P
(1)4P工作要素:任何一位从业者,都应该好好想想自己工作的初衷是什么?你将自己所从事的工作又是定位在什么位置?而这份工作的视角又有多宽.多广?最后是你会在某个周期内完成工作或者是实现突破. (2)5 ...
- knitr::kable实现结构化展示数据
一般做检验,直接会summary结果,通常情况下,会看到很多很多,口区~ 如何提取有用的信息,然后结构化展示数据呢? kable函数了. 我先给出学长给我的一部分,回头整理好了再补充 culture_ ...
- [Code+#4] 最短路 - 建图优化,最短路
最短路问题,然而对于任意\(i,j\),从\(i\)到\(j\)可以只花费\((i xor j) \cdot C\) 对每个点\(i\),只考虑到\(j\)满足\(j=i xor 2^k, j \le ...
- AntDesign(React)学习-15 组件定义、connect、interface
虽然常用的编码用一种即可,但是看别人文档或者示例时,有的写法不熟悉的话看着很不习惯,整理几种实现同一功能的不同写法 1.Dva Connect与@Connect import React, { Pro ...
- "const char *" 类型的值不能用于初始化 "char *" 类型的实体
用vs2019发现会出现这样的问题 最后发现只要设置一下就解决了,解决方案如下: 右击该项目,选择属性->c/c++->语言->将符合模式改为否就行了... 设置之后程序没有再报错, ...