1-27 sed基本编程和cut基本应用
大纲:
一、sed基本编程
sed详解、Usage、操作实例
二、cut命令应用
cut命令详解、Usage、操作实例
########################################################
一、sed基本编程
1、sed详解
vim编辑器入门难,但是功能很强大,不过需要交互式使用。不适合脚本中操作文本文件。
sed--->流编辑器 stream editor
sed文本编辑器,可操作文本,它是按行进行,逐行处理。(默认不直接修改源文件,而是将编辑的行,读取到内存-->内存空间or模式空间,在内存中编辑后,输出到屏幕上)
sed命令运行流程:
将要编辑的行读取到内存,判断是否匹配模式,若匹配,则sed将进行编辑,并将结果输出到屏幕,若不匹配,则将下一个要编辑的行读取到内存,依次循环到文件结尾。
2、Usage
Usage: sed [OPTION] AddressCommand修饰符 file... file...
sed [OPTION]... {script-only-if-no-other-script} [input-file]...
注意Address与Command,还有修饰符之间没有空格
OPTIONS:
-n #只显示匹配的行
-i #直接修改源文件
-e #多个操作同时进行add the script to the commands to be executed
Address:
LineNumber #指定特定的行 ($最后一行)
Start,End #指定范围,从第Start行到第End行
/^root/ #正则表达式 在sed中,若要使用匹配模式为正则表达式时,需/[正则]/
mode1,mode2 #从第一次匹配mode1行开始,到第一次匹配mode2行结束
StartLine,+n #从第StartLine行开始,往后的n行
Command:
d #删除匹配的行
p #打印匹配的行
a\ #在匹配的行前插入内容
i\ #在匹配的行后插入内容
r file #读取文件到匹配的行
w file #将匹配的行保存到文件
s/模式/字符/ #替换匹配的模式为字符 符号/可以使用任意字符
例如: s/root/gan/ ---等价---> s@root@gan@ 等等
修饰符
g #替换全部匹配模式
i #忽略大小写
3、操作实例
3.1.1 删除/etc/passwd 前两行
[root@xiaogan122 ~]# sed '1,2d' /etc/passwd
3.1.2 删除第一行
[root@xiaogan122 ~]# sed '1d' /etc/passwd
3.1.3 删除3-最后一行
[root@xiaogan122 ~]# sed '3,$d' /etc/passwd
3.1.4 删除root的行
[root@xiaogan122 ~]# sed '/^root/d' /etc/passwd
3.1.5 删除1-4行
[root@xiaogan122 ~]# sed '1,+4d' /etc/passwd
3.2 输出root开头的行
[root@xiaogan122 ~]# sed '/^root/p' /etc/passwd
[root@xiaogan122 ~]# sed -n '/^root/p' /etc/passwd
3.3.1 在指定行后面追加内容一行
[root@xiaogan122 ~]# sed '/^root/a\Da Jia Hao' /etc/passwd
3.3.2 在指定行后面追加内容两行
[root@xiaogan122 ~]# sed '/^root/a\Da Jia Hao\nMy name is XiaoGan!' /etc/passwd
3.4 在行前追加
[root@xiaogan122 ~]# sed '/^root/i\Da Jia Hao' /etc/passwd
3.5 另存为
[root@xiaogan122 ~]# sed '/^root/w ./root.txt' /etc/passwd
3.6 查找并替换
[root@xiaogan122 ~]# sed '/^root/s/root/gan/' /etc/passwd
[root@xiaogan122 ~]# sed '/^root/s/root/gan/g' /etc/passwd
实战:
1、修改selinux(配置selinux开机自动开启、关闭)
[root@xiaogan122 ~]# sed 's/SELINUX=disabled/SELINUX=enforcing/' /etc/sysconfig/selinux
若要将修改保存到文件,则需要使用-i选项,直接修改源文件,(需要注意,当sed -i命令修改的文件是连接文件时,这是链接会被破坏,而直接生成对应的文本文件,这时服务设置可能会失效哦)
2、设置IP
[root@xiaogan122 ~]# sed 's/IPADDR=.*/IPADDR="192.168.171.123"/' /etc/sysconfig/network-scripts/ifcfg-eno16777736
二、cut命令应用
1、cut详解
cut是一个选取命令,就是将一段数据经过分析,取出我们想要的部分。
一般来说,选取信息通常是针对行来进行分析的,并不是对整篇进行分析。
有时我们经常会遇到如下问题:
有一页电话号码簿,上面按顺序规则地写着人名、家庭地址等信息,此时我们只想取出所有人的名字和其对应的电话号码,应该怎样实现呢?
2、Usage
Usage: cut OPTION... [FILE]...
OPTIONS:
-b #以字节为单位进行分割
-c #以字符为单位进行分割
-d #以自定义的方式进行分割
-f #以字段为单位进行分割,与-d结合使用,指定显示区域
3、操作实例
3.1过滤字节
[root@xiaogan122 ~]# who | cut -b 1-4
3.2 过滤字符
3.3 过滤汉字 -c
-c #以字符为单位进行分割,英文文档与-b没有区别,但是中文文档就不一样了
3.4 过滤显示区域
[root@xiaogan122 ~]# cut -d : -f 1 /etc/passwd
1-27 sed基本编程和cut基本应用的更多相关文章
- 『忘了再学』Shell基础 — 27、AWK编程的介绍和基本使用
目录 1.AWK介绍 (1)AWK概述 (2)printf格式化输出 (3)printf命令说明 2.AWK的基本使用 (1)AWK命令说明 (2)AWK命令使用 1.AWK介绍 (1)AWK概述 A ...
- UNIX环境编程学习笔记(27)——多线程编程(二):控制线程属性
lienhua342014-11-09 1 线程属性概括 POSIX 线程的主要属性包括 scope 属性.detach 属性.堆栈地址.堆栈大小.优先级.在头文件 pthread.h 中定义了结构体 ...
- What skills are needed for machine learning jobs
What skills are needed for machine learning jobs?机器学习工作必须技能 原文: http://www.quora.com/Machine-Learnin ...
- BASH的保护性编程技巧
BASH的保护性编程技巧 shell常用逻辑判断 -b file 若文件存在且是一个块特殊文件,则为真 -c file 若文件存在且是一个字符特殊文件,则为真 -d file 若文件存在且是一个目 ...
- linux系列之-—01 shell编程笔记
一.特殊变量($0.$1.$2. $?. $# .$@. $*) shell编程中有一些特殊的变量可以使用.这些变量在脚本中可以作为全局变量来使用. 名称 说明 $0 脚本名称 $1-9 脚本执行时的 ...
- SED总结, mac上要加备份文件名,sort命令和对中文的处理
使用sed批量改文件名 Sed批量去拓展名 |- dev.gb.conll06.raw |- test.gb.conll06.raw |- train.gb.conll06.raw 想要去掉其中的后缀 ...
- 大牛推荐的30本经典编程书籍,从Python到前端全系列。
注:为了方便阅读与收藏,我们也制作了30本书籍完整清单的Markdown.PDF版以及思维导图版,大家可以在实验楼公众号后台回复关键字"书籍推荐"获取. Python 系列(10本 ...
- Linux文本处理工具——Sed
sed:数据流编辑器: awk:报告文本的生成器 sed 基本用法:(Stream EDitor) Stream 流 EDitor 编辑器 行编辑器 全屏编辑器:vi/vimsed:内存空间(模式空间 ...
- 面向对象编程案例02--显示地调用父类的__init__()
# -*- coding: utf-8 -*- #python 27 #xiaodeng #面向对象编程案例02--显示地调用父类的__init__() ''' 继承是面向对象的重要特征之一,继承是2 ...
随机推荐
- Linux系统常用命令示例
1.在跟下创建一个目录,目录的名字为data # mkdir /data2.在data目录里创建一个文件,文件名为yunjisuan.txt # touch /data/yunjisuan.txt3. ...
- [转]Earth Mover's Distance (EMD)
转自:http://www.sigvc.org/bbs/forum.php?mod=viewthread&tid=981 Earth Mover's Distance (EMD)原文: htt ...
- Windows 配置安卓环境变量
变量名:JAVA_HOME 变量值:JDK 路径 变量名:CLASSPATH 变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\toos.jar // ...
- ISO8583
最开始时,金融系统只有IBM这些大的公司来提供设备,象各种主机与终端等.在各个计算机设备之间,需要交换数据.我们知道数据是通过网络来传送的,而在网络上传送的数据都是基于0或1这样的二进制数据,如果没有 ...
- zookeeper可视化管理工具node-zk-browser安装
一.安装nodejs 1. 下载 wget https://github.com/joyent/node/archive/v0.10.35.tar.gz 2. 解压 3. 安装依赖 yum -y in ...
- vsftpd基于mysql的认证方式
安装epel源: cd /etc/yum.repos.d wget http://mirrors.neusoft.edu.cn/epel/epel-release-latest-6.noarch.rp ...
- 20145328 《Java程序设计》第2周学习总结
20145328 <Java程序设计>第2周学习总结 教材学习内容总结 掌握了上周没有学会的IDEA的用法 掌握了一些快捷键用法,在用IDEA编写程序的过程中的体验比直接使用cmd进行编写 ...
- 20144303 《Java程序设计》第一次实验实验报告
20144303 <Java程序设计>第一次实验实验报告 北京电子科技学院(besti)实验报告 课程:java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.08 ...
- Java对map进行排序并生成序号
最近做的项目有这样一个需求:要求对map中的值进行排序并生成序号.如果值相等则序号不变:如果不相等序号为该数数值在所有元素中的索引.如下表所示: Key(String) Value(Float) Id ...
- DCU项目总结
1.什么是DCU 在某些基站无法覆盖的地方,如大型体育馆内部1楼.2楼..,此时通过DCU为这些地方提供信号 2.DCU组成 3.我们需要做的 PC通过进入UMPT网关,在一个网页中使用自定义指令集控 ...