文档章节

Linux 学习日记 6: 简单文本处理

ricardohn
 ricardohn
发布于 2016/11/07 17:25
字数 688
阅读 1
收藏 0
点赞 0
评论 0

1.tr 命令

tr 命令可以用来删除一段文本信息中的某些文字。或者将其进行转换。

使用方式:

tr   [option]...  SET1  [SET2]

常用的选项有:

选项         说明

-d         删除和set1匹配的字符,注意不是全词匹配也不是按字符顺序匹配

-s         去除set1指定的在输入文本中连续并重复的字符

操作举例:

# 删除 "hello shiyanlou" 中所有的'o','l','h'
$ echo 'hello shiyanlou' | tr -d 'olh'
# 将"hello" 中的ll,去重为一个l
$ echo 'hello' | tr -s 'l'
# 将输入文本,全部转换为大写或小写输出
$ cat /etc/passwd | tr '[:lower:]' '[:upper:]'
# 上面的'[:lower:]' '[:upper:]'你也可以简单的写作'[a-z]' '[A-Z]',当然反过来将大写变小写也是可以的

2.col 命令

col 命令可以将Tab换成对等数量的空格建,或反转这个操作。

使用方式:

col [option]

常用的选项有:

选项 说明

-x 将Tab转换为空格

-h 将空格转换为Tab(默认选项)

操作举例:

# 查看 /etc/protocols 中的不可见字符,可以看到很多 ^I ,这其实就是 Tab 转义成可见字符的符号
$ cat -A /etc/protocols
# 使用 col -x 将 /etc/protocols 中的 Tab 转换为空格,然后再使用 cat 查看,你发现 ^I 不见了
$ cat /etc/protocols | col -x | cat -A

3.join命令

学过数据库的用户对这个应该不会陌生,这个命令就是用于将两个文件中包含相同内容的那一行合并在一起。

使用方式:

join [option]... file1 file2

常用的选项有:

选项 说明

-t 指定分隔符,默认为空格

-i 忽略大小写的差异

-1 指明第一个文件要用哪个字段来对比,,默认对比第一个字段

-2 指明第二个文件要用哪个字段来对比,,默认对比第一个字段

操作举例:

# 创建两个文件
$ echo '1 hello' > file1
$ echo '1 shiyanlou' > file2
$ join file1 file2
# 将/etc/passwd与/etc/shadow两个文件合并,指定以':'作为分隔符
$ sudo join -t':' /etc/passwd /etc/shadow
# 将/etc/passwd与/etc/group两个文件合并,指定以':'作为分隔符, 分别比对第4和第3个字段
$ sudo join -t':' -1 4 /etc/passwd -2 3 /etc/group

4.paste命令

paste这个命令与join 命令类似,它是在不对比数据的情况下,简单地将多个文件合并一起,以Tab隔开。

使用方式:

paste [option] file...

常用的选项有:

选项 说明

-d 指定合并的分隔符,默认为Tab

-s 不合并到一行,每个文件为一行

操作举例:

$ echo hello > file1
$ echo shiyanlou > file2
$ echo www.shiyanlou.com > file3
$ paste -d ':' file1 file2 file3
$ paste -s file1 file2 file3


© 著作权归作者所有

共有 人打赏支持
ricardohn
粉丝 1
博文 76
码字总数 30236
作品 0
成都
3 款 Linux 桌面的日记程序

用轻量、灵活的数字日记工具来记录你的活动。 保持记日记的习惯,即使是不定期地记,也可以带来很多好处。这不仅是治疗和宣泄,而且还可以很好地记录你所在的位置以及你去过的地方。它可以帮...

19%
07/09
0
0
Yoda:您的 Linux 系统命令行个人助理

不久前,我们介绍了一个名为 “Betty” 的命令行虚拟助手。今天,我偶然发现了一个类似的实用程序,叫做 “Yoda”。Yoda 是一个命令行个人助理,可以帮助您在 Linux 中完成一些琐碎的任务。它...

作者: Sk
04/29
0
0
Linux 中几个高效过滤命令

过滤器是一个程序,它从标准输入读取数据,在数据上执行操作,然后把结果写到标准输出。 因此,它可以用来以强大的方式处理信息,例如重新结构化输出以生成有用的报告,修改文件里面的文本,...

问题终结者
05/15
0
0
4 款 Linux 下开源的个人日记管理软件

本文介绍 4 款可在 Linux 下使用的个人日记管理软件。 1. RedNotebook RedNotebook 是一款不错的可以运行在Linux环境桌面日记本,不论是拿来写日记,还是写些简单的每日计划,都非常适用。 ...

oschina
2013/03/25
6.7K
15
RedNotebook 1.1.3 发布,程序员日记本

该版本修复了在 Windows 平台下的不少bug;更好的子窗口定位处理;改进了 Unicode 编码处理等。 RedNotebook 是一款不错的可以运行在Linux环境桌面日记本,不论是拿来写日记,还是写些简单的...

红薯
2011/03/03
1K
3
Lifeograph 1.0 发布,个人日记程序

Lifeograph 1.0 包含了该项目多年的工作结晶,创建了一个简单但功能强大的 Linux 日记程序。 Lifeograph 是一个开源的离线和私人的日志和记事应用软件。提供作为一个日记应用的所有标准工具。...

oschina
2013/12/09
1K
3
在 Linux 上使用 groff -me 格式化你的学术论文

学习用简单的宏为你的课程论文添加脚注、引用、子标题及其它格式。 当我在 1993 年发现 Linux 时,我还是一名本科生。我很兴奋在我的宿舍里拥有 Unix 系统的强大功能,但是尽管它有很多功能,...

作者: Jim Hall
05/06
0
0
对象/关系映射持久层框架--Ebean

Ebean是一个使用纯Java实现的开源ORM框架。 Bean使用JPA注释(@entity, @OneToMany等Java注释)对实体进行映射。Ebean力求让使用最简单的API帮助开发者从数据库获取有用的数据信息。 Ebean是...

匿名
2009/09/22
7.6K
2
Linux命令行是什么?Linux云计算运维学习

Linux是—个主要通过命令行来进行管理的操作系统,即通过键盘输入指令来管理系统的相关操作,这和Windows系统使用鼠标命击的可视化管理大不相同。 使用鼠标可视化管理的优势是简单、容易上手...

老男孩Linux培训
06/22
0
0
用Linux运维来理解西游记里面的生死薄

今天在复习ACL权限管理的时候,突然想起来这个问题,孙悟空在碰到菩提祖师之前,阎王那里是怎么记载阳寿的呢?猴子甲、乙、丙、还是其它?西游记里是否有关于这个问题的记载呢?生死薄技术是...

酱醋茶丶
2015/08/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

CentOS “Destination Host Unreachable”问题解决办法

挑战极速安装CentOS时遇到局域网主机不能通信的情况: [root@zjd network-scripts]# ping 8.8.8.8PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.64 bytes from 8.8.8.8: icmp_seq=1 ttl=......

wffger
10分钟前
0
0
CentoOS6.6安装netcat

CentOS下安装netcat 使用zookeeper过程中,需要监控集群状态。在使用四字命令时(echo conf | nc localhost 2181),报出如下错误:-bash: netcat: command not found。 我的系统是CentOS 6....

ghou-靠墙哭
21分钟前
0
0
es6之解构赋值巧用

ES6 允许按照一定模式,从数组、对象等中提取值,对变量进行赋值,这被称为解构赋值。 如何进行解构赋值我这里就不赘述,本篇文章主要是将解构赋值的巧妙使用之处。 1、交互变量的值 常用交互...

秋季长青
26分钟前
0
0
Elasitcsearch High Level Rest Client学习笔记(三)批量api

Bulk Request BulkRequest可以在一起从请求执行批量添加、更新和删除,至少需要添加一个操作 BulkRequest request = new BulkRequest(); //创建BulkRequestrequest.add(new IndexRequest("...

木子SMZ
30分钟前
0
0
mybatis-dynamic sql

OGNL expressions if 判断是否存在值 <select id="findActiveBlogLike" resultType="Blog"> SELECT * FROM BLOG WHERE state = ‘ACTIVE’ <if test="title != null"> AND title like #{tit......

writeademo
37分钟前
0
0
社交系统ThinkSNS+ V1.8.3更新播报

     研发发布版本号:1.8.3   本次版本于2018年7月16日发布   本次发布类型:新增功能、细节调整与优化   社交系统ThinkSNSPlus更新体验:请于官网下载/安装最新版或联系QQ35159...

ThinkSNS账号
40分钟前
0
0
教育思考:选择编程是一场父母和孩子的和解[图]

教育思考:选择编程是一场父母和孩子的和解[图]: 之前有个很热的段子是这样讲的:深夜十点的时候,某小区一女子大声喊叫“什么关系?啊?!到底什么关系?你说!”最后发现原来是一位妈妈陪...

原创小博客
41分钟前
0
0
X64汇编之指令格式解析

最近由于项目组内要做特征码搜索的东西,便于去Hook一些未导出函数,你懂得...于是就闲着学习了一下x86/x64的汇编指令格式。x86的汇编指令格式请参照http://bbs.pediy.com/showthread.php?t...

simpower
44分钟前
0
0
rust 语法概要(只适合不熟悉时快速查阅使用,不适合理解其精髓。未完待续)

注意:本内容只适合快查,不适合理解精髓。精髓请研读 https://kaisery.github.io/trpl-zh-cn/foreword.html 基本数据类型 i8,i16,i32,i64,i128 u8,u16,u32,u64,u128 f32,f64 char bool:true...

捍卫机密
47分钟前
0
0
JS中严格模式和非严格模式

1,使用 严格模式的使用很简单,只有在代码首部加入字符串 "use strict"。必须在首部即首部指其前面没有任何有效js代码除注释,否则无效 2.注意事项 (1)不使用var声明变量严格模式中将不通...

AndyZhouX
47分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部