Linux Shell 自动化之让文本飞
Linux Shell 自动化之让文本飞
一、前言:
作者之前在一家 IDC 从事运维兼职工作,后来因某些原因辞职开始 Python 爬虫数据分析。因为这些经历以及后续时间积累下的经验,发现好像自己对文本分析可以写出点东西了。于是本着记录自己这块已掌握的知识点,开始参考书籍和翻阅手册编写本文。希望本文可以使大家对 Linux 下的文本分析有一个清晰的认识并**提高工作效率 **。

二、介绍:
sed 是流编辑器( stream editor )的缩写,众所周知的是用于文本替换(即搜索并修改文本中指定的文本流);awk 是其开发者( Aho、Weinberger、Kernighan )设计用于进行 “行列” 数据流操作的文本**编程语言 **。
当然,sed 和 awk 只是 GNU/Linux 下大部分命令行文本处理工具的俩个神器,相似的还有cut、grep、tr 等等工具。
三、简用:
I、体验变量替换 ${}
[root@ ~]# var='welcome to linux family'
[root@ ~]# echo ${var/family/home}
welcome to linux home
如上使用 ${} 完成变量替换,当然 ${} 还有文本切片能力。更多点我查看博客园文章
II、编辑器VIM文本处理
-
:g/STRING/p

文本替换
:%s/CONTECT/STRING/

文本分析
:!grep -Eo '( )[a-z]{3}( )' %

III、sed 文本处理
文本显示
sed -n '2p;4p'

文本替换
sed -s 's/CONTECT/STRING/g'

文本分析
sed 's/$/end' (\$/^)

sed '/$/^/ STRING

V、awk 文本分析
点我跳转
四、复杂:
感受一下
➜ ~ Time Now 19:44:12 > seq 1 999999 >> /tmp/maths.txt && awk '{ if(6-length($0)==5) print "00000"$0 } { if(6-length($0)==4) print "0000"$0 } { if(6-length($0)==3) print "000"$0 } { if(6-length($0)==2) print "00"$0 } { if(6-length($0)==1) print "0"$0 } { if(6-length($0)==1) print "0"$0 } { if(6-length($0)==0) print $0 } ' /tmp/maths.txt
➜ ~ Time Now 19:47:04 > sudo seq 1 999999 >> /tmp/maths.txt && awk '{ if(6-length($0)==5) print "00000"$0 } { if(6-length($0)==4) print "0000"$0 } { if(6-length($0)==3) print "000"$0 } { if(6-length($0)==2) print "00"$0 } { if(6-length($0)==1) print "0"$0 } { if(6-length($0)==1) print "0"$0 } { if(6-length($0)==0) print $0 } ' /tmp/maths.txt | col -b >> /tmp/maths2.txt
➜ ~ Time Now 19:48:32 > sudo rm -rf /tmp/maths.txt && seq 1 999999 >> /tmp/maths.txt && awk '{ if(6-length($0)==5) print "00000"$0 } { if(6-length($0)==4) print "0000"$0 } { if(6-length($0)==3) print "000"$0 } { if(6-length($0)==2) print "00"$0 } { if(6-length($0)==1) print "0"$0 } { if(6-length($0)==1) print "0"$0 } { if(6-length($0)==0) print $0 } ' /tmp/maths.txt | col -b >> /tmp/maths3.txt
待更新
Linux Shell 自动化之让文本飞的更多相关文章
- Linux Shell 文本处理工具集锦 zz
内容目录: find 文件查找 grep 文本搜索 xargs 命令行参数转换 sort 排序 uniq 消除重复行 用tr进行转换 cut 按列切分文本 paste 按列拼接文本 wc 统计行和字符 ...
- Linux Shell 文本处理工具集锦
本文将介绍Linux下使用Shell处理文本时最常用的工具:find.grep.xargs.sort.uniq.tr.cut.paste.wc.sed.awk:提供的例子和参数都是最常用和最为实用的: ...
- linux —— shell 编程(文本处理)
导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 基本文本处理 流编辑器sed aw ...
- [转] Linux Shell 文本处理工具集锦
内容目录: find 文件查找 grep 文本搜索 xargs 命令行参数转换 sort 排序 uniq 消除重复行 用tr进行转换 cut 按列切分文本 paste 按列拼接文本 wc 统计行和字符 ...
- Linux Shell 文本处理工具集锦(转载)
内容目录: find 文件查找 grep 文本搜索 xargs 命令行参数转换 sort 排序 uniq 消除重复行 用tr进行转换 cut 按列切分文本 paste 按列拼接文本 wc 统计行和字符 ...
- linux shell 修改文本 sed
linux shell 修改文本echo [root@DSI tmp]# echo 'yhqt1 test1' > test1.txt [root@DSI tmp]# cat test1.txt ...
- Linux Shell 文本处理工具集锦【转】
转自:http://www.cnblogs.com/me115/p/3427319.html 内容目录: find 文件查找 grep 文本搜索 xargs 命令行参数转换 sort 排序 uniq ...
- Linux shell文本处理工具
搞定Linux Shell文本处理工具,看完这篇集锦就够了 Linux Shell是一种基本功,由于怪异的语法加之较差的可读性,通常被Python等脚本代替.既然是基本功,那就需要掌握,毕竟学习She ...
- Linux Shell交互式自动化运维程序
Expect是Linux操作系统下的一个用来处理交互操作,系统默认是没有安装expect库,所以执行expect会提示找不到命令,需要手动安装,其它安装也比较简单,可以通过二进制源码包编译配置进行安装 ...
随机推荐
- 自定义信息丰富的Android Log
[问题背景] 最近在项目上需要用LOG来查看和定位一些信息,但是系统原生的LOG实在太乱,信息也不太多,比如调用行数,所在方法,所在类名,线程名称都没有. [初步想法] 本着开源的精神,首先去GitH ...
- Quartz_2_简单编程式任务调度使用(CronTrigger)
第二个要介绍的任务调度器中的触发器是 CronTrigger ,相比较 SimpleTrigger 来说,CronTrigger 相对灵活,对于复杂的业务需求来说,更加的实用.要在使用 CronTri ...
- java-tip-关于StringBuilder的使用
当我们需要拼接字符串时,通常会使用StringBuilder,这里简单分析下StringBuilder的内部结构. StringBuilder内部是一个char数组,当调用append方法连接字符串时 ...
- DBArtist之Oracle入门第3步: 安装配置PL/SQL Developer
操作系统: WINDOWS 7 (64位) 数据库: Oracle 11gR2 (64位) PL/SQL Developer : PL/SQL ...
- 监控服务器cpu、磁盘、模板以及自定义key
一.检测主机存活 net.tcp.service.perf[tcp,,] Float型 返回0代表端口挂了 zabbix fping要开启sudo权限之类比较不方便 二.监控CPU负载 监控load ...
- sqlserver服务器硬件性能瓶颈分析
硬件性能瓶颈 内存 内存对SQL Server性能的影响胜过任何其他硬件.因此,对SQL Server系统的内存使用情况进行定期监视以确保内存的可用百分比高于20%是很有必要的.如果用户遭遇性能问题, ...
- Python String模块详解
>>> import string >>> string.ascii_letters 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKL ...
- bootstrap导航条相关知识
在导航条(navbar)中有一个背景色.而且导航条可以是纯链接(类似导航),也可以是表单,还有就是表单和导航一起结合等多种形式. 为导航条添加标题.二级菜单及状态 <div class=&quo ...
- Pandas -- Merge,join and concatenate
Merge, join, and concatenate pandas provides various facilities for easily combining together Series ...
- yii2 定义友好404
1.frontend->config->main.php添加如下: 'errorHandler' => [ 'errorAction' => 'site/error', ], ...