必威体育Betway必威体育官网
当前位置:首页 > IT技术

sed及正则表达式

时间:2019-06-13 21:41:03来源:IT技术作者:seo实验室小编阅读:72次「手机版」
 

macsed

9.4/9.5 sed

sed

sed 是一种新型的,非交互式的编辑器。它能执行与编辑器 vi 和 ex 相同的编辑任务。sed 编辑器没有提供交互式使用方式,使用者只能在命令行输入编辑命令、指定文件名,然后在屏幕上查看输出。sed 编辑器没有破坏性,它不会修改文件,除非使用 shell 重定向来保存输出结果。默认情况下,所有的输出行都被打印到屏幕上。

sed能实现grep匹配功能,不过没有颜色提示,不如grep简单好用。sed更强大的是替换功能。sed命令行格式为:sed [选项] ‘command’ 输入文本,示例sed 'p' test.txt,这个命令会打印(print)test.txt的内容。由于sed是流处理文本的每一行,默认会输出每一行,所以该条命令会每行显示两边。

常用选项有:

  • -n 只显示匹配行,在一般情况所有的 STDIN 都会输出到屏幕上,加入-n 后只打印被 sed 特殊处理的行
  • -r 扩展正则表达功能,没有该选项时正则表达式一些元字符要用反斜杠脱义
  • -e 多个动作,一个sed命令里可以有多个筛选条件,每个条件前需要加-e。筛选不是选交集,而是符合任一条件即输出
  • -i 直接修改文档读取的内容,不在屏幕上输出

command要用单引号引起来。常用命令有:

  • d 删除行
  • p 打印行
  • l 列出非打印字符
  • s 用一个字符串替换另一个
  • I 不区分大小写

command中还可以指定文本范围、正则表达匹配。指定范围一般是指定行的范围’1,5p’代表打印1-5行。正则匹配字符串要用斜杠引起来:’/root/p’表示打印包含root字符串的行。以上就是sed的命令格式和常用选项、命令,下面是配合正则表达式使用sed的例子。

正则表达

首先拷贝一份/etc/passwd作为试验例子:cp /etc/passwd test.txt

sed -n '5p' test.txt #打印第五行
sed -n '1,5p' test.txt #打印第一行到第五行
sed -n '1,$p' test.txt #打印第一行到最后一行
sed -n '/root/p' test.txt #打印包含root字符串的行
sed -n '/^g/p' test.txt #打印以g开头的行
sed -n '/in$/p' test.txt #打印以in结尾的行
sed -n '/r..t/p' test.txt #打印包含“r..t”字符串的行,两个点表示两个任一字符
sed -n 'oo*p' test.txt #打印包含一个以上o的行,星号表示大于等于零个前字符
sed -n -e '1p' -e '/games/p' test.txt #打印第一行和包含111的行

sed '1d' test.txt #删除第一行
sed '1,3d' test.txt #删除第一到三行
sed '/oot/d' test.txt #删除包含oot字符的行
sed '1,2s/ot/to/g' test.txt #第一到第二行的ot替换为to,与vim中替换命令类似
sed 's#ot#to#g' test.txt #与上一条命令类似,可以将斜杠换为井号,也可以换为@
sed 's/[0-9]//g' test.txt #删除数字
sed 's/[a-zA-Z]//g' test.txt #删除字母
sed -r 's/(rot)(.*)(bash)/\3\2\1/' test.txt #圆括号为一个整体,替换三个括号内容的顺序,123代表三个括号
sed 's/^.*$/123&/' test.txt #在行前面加上123。也可以像上面用\1来表示前面的整体,不过要用圆括号扩起来
sed -i 's/ot/to/g' test.txt #ot替换为to,并修改文本。没有-i的话以上所有操作只是标准输出的屏幕,不会修改文本

相关阅读

常用15个js正则表达式

在表单验证中,使用正则表达式来验证正确与否是一个很频繁的操作,本文收集整理了15个常用的javaScript正则表达式,其中包括用户名、密

正则表达式

在很多技术领域(如:自然语言处理,数据存储等),正则表达式可以很方便的提取我们想要的信息,所以正则表达式是一个很重要的知识点!一、概念

N-BaIoT-Network-based-Detection-of-IoT-Botnet-Atta

数据工程概论作业实现,https://archive.ics.uci.edu/ml/datasets/detection_of_IoT_botnet_attacks_N_BaIoT 数据集的异常检测。

JAVA 正则表达式 (超详细)

https://www.cnblogs.com/xyou/p/7427779.html(PS:这篇文章为转载,我不喜欢转载的但我觉得这篇文章实在是超赞了,就转了过来,这篇可

android:state_pressed是什么意思?

是当控件被按下的时候控件的表示,可以实现按下按钮时,按钮变成领一个模样,松开之后又恢复原样。类似的还有:android:state_focused是

分享到:

栏目导航

推荐阅读

热门阅读