Shell:Day06.笔记
Linux文本处理三剑客 之 sed
sed stream EDite
作为行编辑器,对文本进行编辑(以行为单位进行编辑)
注意:sed编辑文件,却不改变原文件;
sed的工作原理:
指定一个文本文件,依次读取文本文件中每行的内容,读取到模式空间中(PATTERN SPACE),在模式空间中进行文本匹配(正则表达式),对匹配后的内容进行修改(替换、删除、打印、修改、保存等)
sed [OPTION]... {script-only-if-no-other-script} [input-file]...
sed [参数] “sed自己独立的用法格式的语句”[文本文件]
-n 拒绝默认显示
-r 指定使用扩展的正则表达式
匹配IP
1、所有的 \ 都不要 2、 | 或者
-e script for while if
-f 指定脚本文件
-l 指定文本换行的长度?
-i 直接修改文件内容(不要使用)
地址定界方式
1、直接匹配数值
sed -n '5p' 文件
2、 d~步长
sed -n '1~3p' 文件
3、$ 指定行尾
sed -n '10,$p' 文件
4、/正则/
/正则1/,/正则2/
sed -n '/k\{5,\}/,$p' abc
sed -n '/\(fd\)\+/,+2p' abc ? 正则写在前面就没有问题,写在后面就有问题
sed -n '
5、0,addr
addr 可以为 数字/$/正则表达式
sed -n '0,/k\{5,\}/p' abc
6、addr,+N
配置addr行到,addr后N行
sed -n '/fd/,+5p' abc
p print 打印(默认在屏幕上显示出来) 建议和 -n 一起使用;
c 替换
sed "/aaa/c \A" a
d 删除
sed "/aaa/d" a
sed "1,3d" a
n N 读取/添加 模式匹配到的行的下一行内容,再对其进行操作
w 保存文件内容到一个新的文件
sed "/patthen/w 新的文件名" 原来的文件名
sed "/k/w /tmp/aabbcc" abc
*s* 文本内容替换,默认替换模式空间匹配到的第一项;
语法格式: s/pattern/字符串/
中间的 / 可以替换为任意一个特殊字符 例如:s### s@@@ s%%%%
g 全部
\1 \2 和正则表达式的分组相同,实现反向应用;
指定某一个匹配项进行修改替换
& 调用前面(pattern)匹配的内容
sed "s/r..t/&er/g" 文件
w
p
sed的高级应用
模式空间 -- hold space"占有空间"
以后自己取学习
删除/boot/grub/grub.conf文件中所有空白开头的行行首的空白字符;
sed 's/^[[:space:]]\+//g' /boot/grub/grub.conf
删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行 的行首的#和空白字符;
sed 's/^#[[:space:]]\+//g' /etc/fstab
给定一个目录,取出其目录名
echo "/etc/passwd" | sed 's/[^/]\+$//'
给定一个目录,取出其文件名
echo "/etc/passwd" | sed 's#^/.*/\(.*\)##
sed '/[^/]\+/'
dirname -- 取出文件路径的路径部分
basename -- 取出文件路径的文件名部分
for 变量 in 列表;do
循环体
done
for((初始语句; 判断语句; 值变化语句)); do
循环体
done
分支
case 变量 in
PAT1)
执行语句
;;
PAT2)
执行语句
;;
*)
默认执行语句
;;
esac
循环
格式:
while 条件判断 ; do
循环体
值变化语句
done
for i in $(cat /etc/passwd &> /dev/null) 错误写法
while read 变量;do
循环体($变量)
done << /path/filename
while true ; do
循环体
done
break 跳出循环
continue 跳出本次循环
sleep 延长多长时间后,继续向下执行命令
循环
与 while 用法想用
区别:只有 判断条件为 False 的时候,才会进入循环语句;
。。
if 条件判断 ;then
执行语句
fi
if 条件判断 ;then
执行语句1
else
执行语句2
fi
if 条件判断; then
执行语句1
elif 条件判断 ; then
执行语句2
elif 条件判断 ; then
执行语句3
else
执行语句4
fi
Shell:Day06.笔记的更多相关文章
- Learning The Bash Shell读书笔记(整理)
最近搞了一本书 Learning Bash Shell,发现有人已经写了阅读笔记,我就在这边整理一下 来自blog:http://blog.sina.com.cn/n4mine Learning Th ...
- SHELL学习笔记----IF条件判断,判断条件
SHELL学习笔记----IF条件判断,判断条件 前言: 无论什么编程语言都离不开条件判断.SHELL也不例外. if list then do something here ...
- Shell编程笔记
Shell编程笔记与Windows下熟悉的批处理类似,也可以将一些重复性的命令操作写成一个脚本方便处理. 修改别人的脚本,运行后遇到个问题 setenv: command not found 查证 ...
- shell学习笔记
shell学习笔记 .查看/etc/shells,看看有几个可用的Shell . 曾经用过的命令存在.bash_history中,但是~/.bash_history记录的是前一次登录前记录的所有指令, ...
- 菜鸟教程之学习Shell script笔记(上)
菜鸟教程之学习Shell script笔记 以下内容是,学习菜鸟shell教程整理的笔记 菜鸟教程之shell教程:http://www.runoob.com/linux/linux-shell.ht ...
- python day06笔记总结
2019.4.3 S21 day06笔记总结 一.昨日内容补充 1.列表独有功能: 1.revers 反转 例:v1 = [1,2,4,88,2] v1.revers() print(v1) 2.so ...
- [转帖][Bash Shell] Shell学习笔记
[Bash Shell] Shell学习笔记 http://www.cnblogs.com/maybe2030/p/5022595.html 阅读目录 编译型语言 解释型语言 5.1 作为可执行程序 ...
- shell学习笔记汇总
1.shell脚本中函数使用 函数定义在前,调用在后,顺序反了就没有效果了.函数调用为:函数名 参数列表 函数内部通过以下变量访问函数的参数:shell脚本函数中: $0: 这个脚本的名字 $n: 这 ...
- shell 学习笔记2-shell-test
一.字符串测试表达式 前面一篇介绍:什么是shell,shell变量请参考: shell 学习笔记1-什么是shell,shell变量 1.字符串测试表达式参数 字符串需要用""引 ...
随机推荐
- 添加bash命令
cd ~/.bash vim mya 键入 #!/bin/bash hostname -i :x 保存退出 source ~/.bash_profile 生效
- 【04】openlayers 地图弹框
效果: 创建地图: //创建地图 var map = new ol.Map({ //设置显示地图的视图 view: new ol.View({ projection: 'EPSG:4326', //投 ...
- 【11】openlayers 地图交互
地图交互interaction 关于map的方法: //添加地图交互 map.addInteraction(interaction) //删除地图交互 map.removeInteraction(in ...
- Simulink仿真入门到精通(七) Simulink的回调函数
7.1 什么是回调函数 Callback functions(回调函数)是因某种操作而除法对其调用的函数,如按下按钮或双击操作等. 常用的Simulink回调函数可应用在以下场合: 打开Simulin ...
- Python - 变量的作用域
变量作用域 Python能够改变变量作用域的代码段是 def . class . lamda. if/elif/else.try/except/finally.for/while 并不能涉及变量作用域 ...
- NLP(二十七)开放领域的三元组抽取的一次尝试
当我写下这篇文章的时候,我的内心是激动的,这是因为,自从去年6月份写了文章利用关系抽取构建知识图谱的一次尝试 后,我就一直在试图寻找一种在开放领域能够进行三元组抽取的办法,也有很多读者问过我这方面 ...
- 一般人不知道的Flask框架SQLAlchemy的那些事
目录 SQLAlchemy 1.介绍 2.简单使用(能创建表,删除表,不能修改表) 3.一对多关系 4.多对多关系 5.操作数据表 6.基于scoped_session实现线程安全 7.基本增删查改 ...
- 个人项目(Word Count)
一.Github项目地址 https://github.com/AllForward/GP_Homework/tree/master/个人项目 二.题目叙述 这个项目要求写一个命令行程序,模仿已有wc ...
- CTF_WriteUp_HTTP——302临时重定向问题
HTTP--302临时重定向 题目描述 点击给出的链接后,没有发生任何变化. 解决方案 通过擦好看网络请求,可以发现发生了302临时跳转,所以我们无法通过浏览器直接访问未跳转的页面,而flag 可能藏 ...
- JSFinder:一个在js文件中提取URL和子域名的脚本
JSFinder介绍 JSFinder是一款用作快速在网站的js文件中提取URL,子域名的脚本工具. 支持用法 简单爬取 深度爬取 批量指定URL/指定JS 其他参数 以往我们子域名多数使用爆破或DN ...