Linux学习总结(十八)几个简单的文本处理工具cut sort tr split

1 命令cut

用来截取某一个字段
格式 : cut -d ‘分隔符‘ [-cf] n, n为数字,表示第几段
-d:后面跟分隔符,分割符要加单引号
-c:后面接的是第几个字符
-f:后面接的是第几段
那么意思是-c,-f选项二选一
例如: head -3 /etc/passwd |cut -d ‘:‘ -f 1

例如 head -3 /etc/passwd |cut -c 1

-c也可以是一个区间
例如 head -3 /etc/passwd |cut -c1-3

-c 也可以单独指定好几个位置的字符
例如 head -3 /etc/passwd |cut -c1,3,4

2 命令sort

用来排序,格式为 sort [-t 分隔符] [-kn1,n2] [-nru],这里n1和n2为数字
-t:后面跟分割符,作用跟cut的-d一样
-n:表示用纯数字排序
-r:表示反向排序
-u:表示去重复
-kn1,n2:表示由n1区间排序到n2区间,可以只写-kn1,即对n1字段排序
sort 不加任何选项表示从首字符向后依次按ASCII码值进行比较,最后按升序输出
例如 head -4 /etc/passwd |sort

-t 指定分隔符,-k指定区域
例如 head -4 /etc/passwd |sort -t ‘:‘ -k3 -n

也可以对连续一段区域排序
例如 head -4 /etc/passwd |sort -t ‘:‘ -k3,5 -r

3 命令wc

用于统计文档的行数,字符数或词数
-l 统计行数
-m 统计字符数
-w 统计词数

4 命令uniq

用来删除重复的行,前提是需要排序
-c 用来统计重复的行数
我们编写一个test.txt来理解下

5 命令tee

tee 配合管道符使用作用类似于重定向,但比重定向多一个功能,可以把文件写入目标文件时,还可以把它打印出来。
比较下这两句: head -3 /etc/passwd > a.txt
head -3 /etc/passwd |tee b.txt

6 命令 tr

用于替换字符,常用来处理文档中的特殊符号
-d 表示删除某个字符
-s 表示删除重复的字符
举两个例子 ,小写替换大写
head -2 /etc/passwd |tr ‘[a-z]‘ ‘[A-Z]‘

替换某一个字符
head -2 /etc/passwd |tr ‘o‘ ‘O‘

7 命令split

用户切割文档,常用的选项有-b,-l
-b :指定文件大小切割,单位为byte
例如我们把一个3M的文件切割3份

下面我们按行切割下,/etc/passwd 有21行,我们把它按行切割为三份

原文地址:http://blog.51cto.com/12606610/2082766

时间: 2024-10-12 07:36:30

Linux学习总结(十八)几个简单的文本处理工具cut sort tr split的相关文章

Linux学习(十八)软件安装与卸载(一)rpm和yum安装与卸载软件

一.Linux下安装软件的三种方式 在Linux下安装软件有三种方式:rpm安装,yum安装,源码包安装.接下来,我们对这三种安装方式一一进行讲解. 二.rpm安装 rpm安装类似于windows自带的"安装/卸载",通过rpm命令我们可以安装一些现成的二进制包.rpm安装的包的安装路径是固定的. 安装好光盘后,将它挂载到/mnt/,然后进到光盘中的Packages目录中,发现这里有很多包: [[email protected] ~]# df -h 文件系统 容量 已用 可用 已用%

Linux学习笔记<十八>——内核编译

内核由核心和内核模块两部分组成 核心:/boot/vmlinuz-version 内核模块(ko):/lib/modules/version/ 查看内核版本 uname -r 主版本号.次版本号(偶数表示稳定版本,奇数表示测试版本).修订版本号(修订的次数) 用户空间访问.监控内核是通过访问修改/proc,/sys目录下的文件(即设定内核的参数值)实现的 /proc/sys:此目录中的文件很多是可读写的 /sys:某些文件可写 设定内核参数值的方法: 1.echo VALUE > /proc/s

linux学习第十周总结

linux学习第十周总结 接着上周的mysql,重点终结日志管理 ,备份还原,主从复制和mysql集群 一.mysql日志管理 事务日志 transaction log 错误日志 error log 通用日志 general log 慢查询日志 slow query log 二进制日志 binary log 中继日志 reley log 1.事务日志 事务型存储引擎自行管理和使用,建议和数据文件分开存放 redo log undo log Innodb事务日志相关配置: show variabl

攻城狮在路上(叁)Linux(二十八)--- 打包命令:tar

首先介绍一下tar打包命令的基本格式,下面的三种之间不能混淆. tar [-j|-z] [cv] [-f 新文件名] file1 file2 ...; tar [-j|-z] [tv] [-f 新文件名]; <== 查看文件名 tar [-j|-z] [xv] [-f 新文件名] [-C 目录]; <== 解包 参数说明: -c:新建打包文件,搭配-v来查看过程中被打包的文件名 -t:查看打包文件的内容包含哪些文件名 -x:解包或解压缩功能.可搭配大写C来指定解压目录 ------------

【Linux学习】 包含子目录的makefile简单应用

1 .目录结构 practice6 / ui / ui.h   ui.c practice6 / dal / dal.h dal.c practice6 / bll / bll.h  bll.c practice6 / main.c pracitce6 / Makefile 2.Makefile写法及说明 CC = gcc CFLAGS = -Wall -g BIN = main.out SUBDIR = $(shell ls -d */) //调用shell命令 ls -d */ 列出当前目录

C++语言学习(十八)——异常处理

C++语言学习(十八)--异常处理 一.C语言异常处理 异常是指程序在运行过程中产生可预料的执行分支.如除0操作,数组访问越界.要打开的文件不存在.Bug是指程序中的错误,是不被预期的运行方式.如野指针.堆空间使用结束未释放.C语言中处理异常的方式一般是使用if....else...分支语句. double divide(double a, double b) { const double delta = 0.000000000000001; double ret = 0; if( !((-de

十八款为设计师提供的免费工具

在大神博客上读到的几篇不错的文章. 1. JavaScript可变长度柯里化(Variable length curring in JavaScript) 这是一个有趣的编程挑战,reddit用户i7_leaf分享的一个面试问题.本文介绍的内容和原始问题有一个关键的区别.这个面试题要求面试者实现一个执行如下的功能: addSubtract(1)(2)(3); // 1 + 2 - 3 = 0 addSubtract(1)(2)(3)(4)(5)(6); // 1 + 2 - 3 + 4 - 5

练习题,使用多线程编写一个简单的文本处理工具

一. 练习题要求: 编写一个简单的文本处理工具,具备三个任务,一个接收用户输入,一个将用户输入的内容格式化成大写,一个将格式化后的结果存入文件 二. 分析: 三个任务,那就是三个线程.分别的输入,转换,写入,这3个线程.那么写入的输入,其他线程怎么取出?我们可以使用Queue队列,把用户输入的字符写入到队列中,然后再进行转换.转换完成后,再写入到另外一个队列中.等待最后写入文件三.实现 1 from threading import Thread 2 from multiprocessing i

Linux学习第十二周总结

linux学习第十一周总结 http协议和APACHE 实现LAMP架构 日志管理 网络文件共享服务 一 .HTTP协议和apache 1.HTTP 简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议. HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等). HTTP是一个属于应用层的面向对象的协议,由于其简捷.