数据剪切命令cut和数据粘贴命令pastte
在Windows中,经常从一个文件将一段文本移动到另一个文件中。在Linux中执行这个任务的是cut和paste命令。
一、数据剪切命令cut
- 命令格式:
cut [option] [file]
- 常用选项:
b:表示要操作的对象是字节。
c:表示要操作的对象是字符。
f:表示要操作的对象是字段。
d:指定字段分隔符,默认情况下是制表符Tab。
s:表示不包含没有字段分隔符的行,这个选项通常用于去掉注释 等。
剪切范围表示方法如下:
N:表示第N个字节、字符或字段。
N-:表示从N到一行结束内的所有文本。
N-M:表示从N到M之间的所有文本。
-M:表示从开始到M之间的所有文本。
-:从开始到结束的所有文本。
除了上面的表示范围的方法以外,还可以像前面匹配行时一样,使用诸如“N,M”之类的表示方法。
- 用法示例:
使用cut剪切时,剪切的文本可以来自文件,也可以来自管道、其他命令的输出等。完成剪切后,cut与大多数文本操作命令一样,不会操作原有文件(即不改变原有文本的内容),而是直接将结果输出到标准输出。
cut命令工作时,以行为单位剪切整个文本(即同样的剪切命令会对文本的每一行都生效)。
(1)对已经计算好字节数或具备特殊格式的文本进行剪切时,使用选项b按字节剪切是比较方便的。
例如要剪切所有学生的学号,学号具有特殊格式(每个学生的学号都是10个字节):
[root@localhost test]# cut -b-10 students
2821020225
2821020115
2721020321
2921020632
2721010409
2921050313
2721030227
(2)剪切某个特殊字段的一部分字符,可以使用选项c。例如要剪切学生所在系和班级的代号:
[root@localhost test]# cut -c5-8 students
0202
0201
0203
0206
0104
0503
0302
(3)使用选项f对多个字段进行剪切。例如要剪切出所有学生的学号、姓名和辅导员:
[root@localhost test]# cut -f1-2,4 students_new
2821020225 Liulu Lixia
2821020115 Liumin lixia
2721020321 Xuli Luolei
2921020632 Xiayu Hetao
2721010409 Liwei tangwei
2921050313 Heli Tangwei
2721030227 Wangtao Huli
1-2,4表示剪切第1、2、4个字段。
(4)有时字段之间的分隔符不是制表符Tab,这时应该使用选项d指定新的字段分隔符。例如:
[root@localhost test]# cut -d# -f1-3 student0
2821020225#Liulu#Sichuan
2821020115#Liumin#Henan
2721020321#Xuli#Jiangsu
2921020632#Xiayu#Shanxi
2721010409#Liwei#Sichuan
2921050313#Heli#Xizang
2721030227#Wangtao#Yunnan
一般情况下,都将cut命令的输出重定向到一个文件中,以便于执行粘贴操作。
注意:在使用cut执行剪切操作时,无论是否需要,通常都将一行的标志性字段一起剪切(能唯一确定记录的字段),例如学号、序号等,以便于出问题时更容易查找。
二、数据粘贴命令paste
通常完成剪切之后,需要将剪切的内容粘贴到另一个文本中。这时就需要使用数据粘贴命令paste。
- 命令格式:
paste [option] [file…]
- 常用选项:
d:对新生成的文本指定新的字段分隔符,默认是制表符Tab。
s:将粘贴的内容合并成行(即横向粘贴)。
- 用法示例:
[root@localhost test]# cat paste1
2821020225
2821020115
2721020321
2921020632
2721010409
2921050313
2721030227
[root@localhost test]# cat paste2
Liulu
Liumin
Xuli
Xiayu
Liwei
Heli
Wangtao
[root@localhost test]# cat paste3
325
280
321
334
356
259
320
(1)将学号和成绩粘贴在一起:
[root@localhost test]# paste paste1 paste3
2821020225 325
2821020115 280
2721020321 321
2921020632 334
2721010409 356
2921050313 259
2721030227 320
(2)如果要按指定的顺序粘贴,可以按先后顺序依次输入相关文件。例如想要先粘贴成绩在粘贴姓名:
[root@localhost test]# paste paste3 paste2
325 Liulu
280 Liumin
321 Xuli
334 Xiayu
356 Liwei
259 Heli
320 Wangtao
(3)还可以进行横向粘贴,这在一些特殊情况下很有用。例如将学生姓名及成绩进行横向粘贴:
[root@localhost test]# paste -s paste2 paste3
Liulu Liumin Xuli Xiayu Liwei Heli Wangtao
325 280 321 334 356 259 320
(4)使用paste进行粘贴时,使用的文件可以不止两个,即可以有多个文件同时进行粘贴。多个文件进行粘贴时,可以为每一个字段指定一个不同的分隔符。
例如要将3个文件粘贴起来,第1、2个字段之间仍旧用制表符分割,而第2、3个字段之间用“#”分割:
[root@localhost test]# paste -d'\t#' paste1 paste2 paste3
2821020225 Liulu#325
2821020115 Liumin#280
2721020321 Xuli#321
2921020632 Xiayu#334
2721010409 Liwei#356
2921050313 Heli#259
2721030227 Wangtao#320
上面的命令中,paste在进行粘贴时,依次使用指定的域分隔符,对粘贴后的域进行分割。
(5)处理来自管道的文本时,paste使用“-”代表来自管道的文本。例如要在文本paste1的每一行前面加上序号(序号已经保存在文件ps中):
[root@localhost test]# cat ps
1
2
3
4
5
6
7
[root@localhost test]# cat paste1 | paste -d"#" ps -
1#2821020225
2#2821020115
3#2721020321
4#2921020632
5#2721010409
6#2921050313
7#2721030227
注意:在一些版本中,cut和paste这两个命令会严格按字段分隔符对字段进行划分。例如当有空格在制表符前后时,空格也会被当作一个字段。因此在剪切和粘贴的过程中应该反复尝试,直到输出正确后再重定向到文件中。
数据剪切命令cut和数据粘贴命令pastte的更多相关文章
- POST在发送数据的时候使用的是HTTP命令
防止SQL注入 SQL(结构化查询语言)是基于美国国家标准学会(ANSI)标准,并作为共同的语言与数据库通信.每个数据库系统增加了一些专有功能到基本的ANSI SQL. SQL注入是一门将制作好的SQ ...
- MySQL 插入数据 通过命令提示窗口插入数据
MySQL 表中使用 INSERT INTO SQL语句来插入数据. 你可以通过 mysql> 命令提示窗口中向数据表中插入数据,或者通过PHP脚本来插入数据. 语法 以下为向MySQL数据表插 ...
- mysql命令导出导入数据和结构
在命令行下mysql的数据导出有个很好用命令mysqldump,它的参数有一大把,可以这样查看: mysqldump 最常用的: mysqldump -uroot -pmysql databasefo ...
- mysql更改数据文件目录及my.ini位置| MySQL命令详解
需求:更改mysql数据数据文件目录及my.ini位置. 步骤: 1.查找my.ini位置,可通过windows服务所对应mysql启动项,查看其对应属性->可执行文件路径,获取my.ini路径 ...
- Linux数据备份与恢复 dump、restore、dd命令
dump命令:备份分区.文件或目录 在Linux系统中 dump 命令是没有安装的,所以先安装一下 dump 命令,安装命令如下: [root@localhost -]# yum -y install ...
- Oracle数据导入导出imp/exp命令 10g以上expdp/impdp命令
Oracle数据导入导出imp/exp就相当于oracle数据还原与备份.exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中. 利 ...
- GreenPlum/postgres copy命令导出/导入数据
一.COPY命令简单实用 1.copy在postgres与GreenPlum介绍 1.1 postgrespostgres的COPY命令可以快速的导出/导入数据到postgresql数据库中,支持常用 ...
- 数据仓库之抽取数据:通过bcp命令行导入数据
原文:数据仓库之抽取数据:通过bcp命令行导入数据 在做数据仓库时,最重要的就是ETL的开发,而在ETL开发中的第一步,就是要从原OLTP系统中抽取数据到过渡区中,再对这个过渡区中的数据进行转换,最后 ...
- MySQL ALTER命令-修改数据表名或者修改数据表字段
需要修改数据表名或者修改数据表字段时,就需要使用到MySQL ALTER命令. 删除,添加或修改表字段 如下命令使用了 ALTER 命令及 DROP 子句来删除表的 i 字段: ALTER TABLE ...
随机推荐
- Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode) -> [Help 1]
mvn war:war命令出错: 原因: maven的web项目默认的webroot是在src\main\webapp.如果在此目录下找不到web.xml就抛出以上的异常. 解决方案: 在pom.xm ...
- 安装Win7和Office2010并激活
1. 下载Win7 建议安装原版的win7 SP1 64位中文旗舰版,不建议安装Ghost版本,之前用U盘安装Ghost版本一直失败.原版的下载地址为,选其中一个地址下载就行了. ed2k://|fi ...
- windows 无法启动asp.net 状态服务 错误 0x8007277a
处理方法:如果在启动ASP.NET State Service服务时遇到问题0x8007277a即无法启动或初始化,请尝试在命令行(CMD)中输入netsh winsock reset(有可能是wi ...
- 异步编程之Promise(3):拓展进阶
异步编程系列教程: (翻译)异步编程之Promise(1)--初见魅力 异步编程之Promise(2):探究原理 异步编程之Promise(3):拓展进阶 异步编程之Generator(1)--领略魅 ...
- MYSQL数据库性能调优之二:定位慢查询
windows下开启慢查询: 第一步:先查看版本 第二步查看查询日志和慢查询配置 第三步:配置开启慢查询 在my.ini配置文件的[mysqld]选项下增加: slow_query_log=TRUE ...
- c语言typedef的用法-解惑阿!很多天书般的东西解释的不错(转)
转自(http://www.cnblogs.com/wchhuangya/archive/2009/12/25/1632160.html) 一.基本概念剖析 int* (*a[5])(int, cha ...
- 将服务器返回的URL或者网址截取出来特定的字符,然后将字符返回,一般根据返回的字符判断用户是否登录等即时状态
1.用NSScanner过滤掉url中开头或者尾部存在的空格 2.用NSScanner的 setCharactersToBeSkipped方法忽略指定的字符集 3.用scanUpToString扫描去 ...
- 如何让ASP.NET网站站点不停止 永远持续运行
转载自 http://www.cnblogs.com/insus/p/3658752.html 在公司内部服务器,运行很多网站(应用程序),但每个网站都有自动化或是定时执行的事务.后来经整合,所有这 ...
- ZOJ 3195 Design the city LCA转RMQ
题意:给定n个点,下面n-1行 u , v ,dis 表示一条无向边和边权值,这里给了一颗无向树 下面m表示m个询问,问 u v n 三点最短距离 典型的LCA转RMQ #include<std ...
- 51Nod 1201 整数划分 (经典dp)
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1201 题意不多说了. dp[i][j]表示i这个数划分成j个数 ...