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语言中,怎么 ...
随机推荐
- processing data
获取有效数据 Scikit-learn will not accept categorical features by default API里面不知使用默认的特征变量名,因此需要编码 这里我还是有疑 ...
- 一道有趣的for循环题
一道有趣的for循环题 今天在复习js基础知识时发现了一个for循环的题,第一眼看到直接懵逼了,没想到for循环竟然还可以这样玩?涨姿势了. 题目是这样的 for(i=0, j=0; i<10, ...
- PHP自定义函数+系统函数库
全局变量 $n = 5; //全局变量 function fun1(){ global $n; $n++; } fun1(); echo '<hr>'; $n = 6; function ...
- rabbitmq系列问题解决:406, "PRECONDITION_FAILED - inequivalent arg 'durable'
1. 安装rabbitmq,查看官网文档: https://www.rabbitmq.com/#getstarted 由于我是先安装了rabbitmq后自己随手创建了queue,后面又按照官方给的&q ...
- POJ 2096 Collecting Bugs (概率DP,求期望)
Ivan is fond of collecting. Unlike other people who collect post stamps, coins or other material stu ...
- PP: Toeplitz Inverse Covariance-Based Clustering of Multivariate Time Series Data
From: Stanford University; Jure Leskovec, citation 6w+; Problem: subsequence clustering. Challenging ...
- VSCode的Vue插件Vetur设置
使用VSCode编写vue项目时安装了Vetur插件,但是每次alt+shift+f格式化代码的时候就有点让人头疼, 缩进自动变成了2个空格(习惯了用4个空格缩进,不同层级的代码看着明显一点),js代 ...
- Mac下Charles的安装和配置
一.安装与破解 官网下载,破解方法参考其他,此处略 二.配置 1.电脑端安装 Charles 的根证书 注意:此时钥匙串默认为不信任,需设置为始终信任 2.配置代理:勾选enable transpre ...
- SpringBoot学习- 7、问题Could not autowire. No beans of 'xxxx' type found处理
SpringBoot学习足迹 这个问题网上有好多同学都提到这个问题,代码可以运行,但是就是有红线,强迫症不能忍 自己试验下 1.增加一个final编译一下,再删掉就不会出红线了 public clas ...
- spring aop使用,spring aop注解,Spring切面编程
================================ ©Copyright 蕃薯耀 2020-01-21 https://www.cnblogs.com/fanshuyao/ 一.第一步, ...