Linux下cut命令用法详解

article/2025/8/17 20:29:19

Linuxcut命令用法详解

                                                           原创:frozen_sucker(冰棍)

有时我们经常会遇到这样一些问题:有一页电话号码薄,上面按顺序规则地写着人名、家庭住址、电话、备注等,此时我们只想取出所有人的名字和其对应的电话号码,你有几种方法可以实现呢?

以下内容欢迎转载,但请保留作者名号及出处,谢谢!

原创:frozen_sucker

链接:http://blog.csdn.net/Frozen_fish/archive/2008/04/08/2260804.aspx

确实这种纵向定位的方式用常规办法难以实现,这时,cut就可以大显身手了。

 

What’s cut?

子曰:cut命令可以从一个文本文件或者文本流中提取文本列。

命令用法:

       cut -b list [-n] [file ...]

       cut -c list [file ...]

       cut -f list [-d delim][-s][file ...]

 

l      上面的-b-c-f分别表示字节、字符、字段(即bytecharacterfield);

l      list表示-b-c-f操作范围,-n常常表示具体数字;

l      file表示的自然是要操作的文本文件的名称;

l      delim(英文全写:delimiter)表示分隔符,默认情况下为TAB

l      -s表示不包括那些不含分隔符的行(这样有利于去掉注释和标题)

 

上面三种方式中,表示从指定的范围中提取字节(-b)、或字符(-c)、或字段(-f)。

范围的表示方法:

N

只有第N项

N-

从第N项一直到行尾

N-M

从第N项到第M项(包括M)

-M

从一行的开始到第M项(包括M)

-

从一行的开始到结束的所有项

 

 

下面是实例,先以较简单的“命令用法”中提及的第二条开始讲起:

interrupts文件中的字符排列非常齐整,正适合我们切豆腐。

 

但这里我们只对两个数字列感兴趣,用法如下:

里面还有一些不需要的内容,精减一下:

关于正则表达式的使用,请自行查阅相关资料。

 

 

合到一起:

哇,果然够帅!!

不相邻列的截选又应该如何做呢?

这种方式需要事先确定占多少个字符位置,不仅麻烦,而且容易出错。

下面的问题该怎么去做?

 

 

这就是第二讲:使用cut –f提取文本中的字段。

 

cut –c主要是用来在固定字符位置或个数的文本文件中提取,对于上面的例子就显得无能为力了。仔细观察,发现passwd文件有个规律,就是以冒号来区分不同的段的文本,于是。。。

怎么样,好玩吧~!

继续,创建一个文本文件,名为a.txt,名字有点土,凑合着用吧。

A1B1C1所代表的行字符之间均以TAB分隔,D1却是以空格来分开的。

 

 

看到-s的作用了吗?(因为第一行不含有任何TAB字符,所以直接被剔除了),而最后一行(D1),是以空格区分间距,所以也不合要求。

 

 

多了个参数,这个我没讲,只要你的智商比范伟高一点点,就肯定能猜出来啦。^_^

 

好了,下面是最后一个用法的讲解了:

 

 

因为虚拟终端下无法显示汉字,所以我只好回到图形下,截图就成这个白不垃圾的样子啦,忍忍吧,就快讲完了。

在这个文件中,每个汉字都是用半角空格分隔的。

 

 

 

 

cut –c已经成功了,下面试试cut –b怎么样?

没有反应,why

   

原因在于汉字本身是双字节的,cut –c把汉字“我”当成一个字符来处理,而cut –b是以字节来处理,把“我”拆成了两个字节,结果是字符被“切成两半”,因此无法正常显示。

 

原因找到了,要怎么办才好呢?

 

 

!!!搞定。

 

OKall is done。就到这里吧,休息,休息。。。


http://chatgpt.dhexx.cn/article/Q6F2DVIA.shtml

相关文章

使用Dynamic Shortcuts

在看完Static Shortcuts后, 我们不相信Google仅仅给我们开发者开放了局限性如此大的使用方式, 肯定还会存在灵活性更大的API, 是的, 这就是我们马上要讲的Dynamic Shortcuts, 我把它称为动态配置. 说起动态配置, 那肯定是用java代码实现了, 那如何实现呢? 首先第一步, 我们需…

Shortcuts,让你可以在系统的桌面上为所欲为

/ 今日科技快讯 / 近日,有用户刷抖音时看到烤虾广告下单,实付款194元买了250克烤虾干,货到付款后发现是三无产品,且外形口感与广告宣传天差地别。对此抖音表示,已对此事展开相关调查,并下架涉嫌虚假宣传…

Shortcuts使用解析(一)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/susan_123456/article/details/93793490 Shortcuts是什么? Shortcuts是指在桌面长按App图标而出现的快捷方式,可以为你的App的关键功能添加更快速的…

是时候来了解android7了:shortcuts(快捷方式)

本文已授权微信公众号:鸿洋(hongyangAndroid)在微信公众号平台原创首发。 就在前几天的一个晚上, Google召开了它的秋季发布会, 毫无悬念的宣布了它的最新手机品牌Pixel, 与此同时我的nexus设备也从亲儿子降级成为干儿子. 不过还好Google并没…

Android 7.1 新特性:快捷方式 Shortcuts 详解

Android 7.1 新特性:快捷方式 Shortcuts 详解 一、Shortcuts 介绍 Android 7.1 允许 App 自定义 Shortcuts,类似 iOS 的 3D touch。通过在桌面长按 App 弹出 Shortcut 列表,点击某个 Shortcut 快速进入某项操作,同时 Shortcut 可以…

Android7.1新特性:快捷方式Shortcuts详解

Shortcuts介绍 Android7.1(API Level 25)及以上系统可以自定义Shortcuts,通过在桌面上长按App Icon弹出Shortcut列表,点击某个shortcut可使用户快捷得打开App里常用的或推荐的任务。长按列表中的任一个Shortcut可拖动到桌面进行固…

oracle 左连接

oracle左连接小结 当使用左连接关联表进行查询时,如果右侧的表在关联的条件中有重复的数据,就会导致最后的查询结果比预期的多,比如: select * from A 需要关联的表 select * from B 这里的两个表的id都是主键,现在…

lambda多表左连接

下面是mysql多表左连接,对应的lambda表达式写法,只为快速解决你的问题,详细的就不介绍了,只出结果,相信稍微有点基础的都能看懂。相关知识点,请自行百度 关键字:GroupJoin、SelectMany sql语句…

实例讲解内连接、左连接、右连接、交叉连接、外连接以及全连接

目录 示例表&#xff1a;1.内连接-inner&#xff1a;实例1&#xff1a;内连接表a和表b实例2&#xff1a;内连接表a和表c实例3&#xff1a;内连接表a和表b,使用“>”号实例4&#xff1a;内连接表a和表b,使用“<”号实例5&#xff1a;内连接表a和表b,指定字段显示实例6&…

mysql 左连接查询记录数,MySQL左连接查询记录行数

最近修复一个数据问题&#xff0c;其中用到了左连接&#xff0c;我的意识里还以为A左连接B&#xff0c;查询出的记录数量会是A的记录数&#xff0c;然而实际操作后发现认知严重错。 网上关于左连接的一张图 摘自网上的一张图&#xff0c;图确实没毛病&#xff0c;但我却产生了误…

mysql左连接出现笛卡尔积_Mysql内连接、左连接会出现笛卡尔积的理解

先简单解释一下笛卡尔积。 现在,我们有两个集合A和B。 A = {0,1} B = {2,3,4} 集合 AB 和 BA的结果集就可以分别表示为以下这种形式: AB = {(0,2),(1,2),(0,3),(1,3),(0,4),(1,4)}; BA = {(2,0),(2,1),(3,0),(3,1),(4,0),(4,1)}; 以上AB和BA的结…

关于左右连接

首先来看一下两张主要的表&#xff1a; persons表 orders表 现在我们希望列出所有的人&#xff0c;以及他们的定购。 SELECTpersons.last_name,persons.first_name,orders.order_no FROMpersons LEFT JOIN orders ON persons.pid orders.pid ORDER BYpersons.last_nam…

LINQ左连接

title: linq左连接 date: 2021-12-05 08:45:48 tags: C# Linq LINQ语言继承查询 近日项目实践中遇到这样的一个事情。在一个项目需求里存在这么一个情况&#xff0c;有以下一个主表与几个基础数据表组成一个大表&#xff0c;要求主表中的有的数据必须展示出来&#xff0c;但大…

ClickHouse左连接

A左连接B>S1区域 1、等价方式一 SELECT date, ts, country, province, city,ye_no FROM (SELECT date, ts, country, province, city,0 AS yes_no FROM DBa.tba WHERE (date today()-1) ) ALL LEFT JOIN (SELECT date, ts, country, province, city FROM DBb.tbb WH…

【Mysql】图解左、右、内与全连接

一、前言 使用学生表与成绩表来演示Mysql中的各种连接查找 学生表的建表语句如下&#xff1a; CREATE TABLE student(id int(11) NOT NULL AUTO_INCREMENT COMMENT 自增序号,st_id int(11) DEFAULT NULL COMMENT 学生id,st_name varchar(255) DEFAULT NULL COMMENT 学生姓名…

使用VC和MATCOM结合开发应用程序心得笔记

使用VC和MATCOM结合开发应用程序心得笔记1. 什么是Matcom?Matcom是MathTools公司(UPenn)开发的一个基于C矩阵函数库Matrix的一个matlab m文件与cpp文件的转换程序。MIDEVA为他的一个集成调试编译环境(界面)。Matcom独立于matlab之外&#xff0c;但需要外部的c编译器&…

MATLAB与VC混合编程(1)

在本节中先介绍matcom&#xff0c;使得VC能调用Matlab 的M文件&#xff0c;从而实现混合编程。 Matcom是mathTools公司推出的一个能将M文件转化成相同功能C代码的工具。相比Matlab自带的编译器Compiler&#xff0c;用Matcom转化代码要简单和方便得多。以VC6.0和Matcom为例&…

利用Matcom实现基于MATLAB的混合编程

利用Matcom实现基于MATLAB的混合编程 来源: 神经网络 作者&#xff1a;AI俱乐部 网友评论 0 条 浏览次数 42 <script> remark_look(re_look.php?cid17&tid1843); </script> Matcom是mathTools公司推出的最早的Matlab到C的编译器。后来&#xff0c;由于Mathto…

深度学习(十二):Matconvnet小试牛刀与提特征

该节简单介绍一下如何使用Matconvnet的现有的模型进行图像分类实验以及提取图像对应层的特征。 先来看看如何用训练好的imagenet网络模型进行图像的预测&#xff0c;英文版的官网教程就在这里&#xff1a; http://www.vlfeat.org/matconvnet/quick/ 检测图像分类之前&#x…

项目总结四:神经风格迁移项目(Art generation with Neural Style Transfer)

1、项目介绍 神经风格转换 (NST) 是深部学习中最有趣的技术之一。它合并两个图像, 即 内容图像 C&#xff08;content image&#xff09; 和 样式图像S&#xff08;style image&#xff09;, 以生成图像 G&#xff08;generated image&#xff09;。生成的图像 G 将图像 C 的 内…