码迷,mamicode.com
首页 > 系统相关 > 详细

shell 之sed grep 小记

时间:2016-08-02 17:20:16      阅读:262      评论:0      收藏:0      [点我收藏+]

标签:编辑器   换行符   字符串   happy   单词   

sed 命令

用途

提供流编辑器。

语法

sed [ -n ] Script [ File ... ]

sed [ -n ] [ -e Script ] ... [ -f ScriptFile ] ... [ File ... ]

描述

sed 命令根据编辑脚本从指定的 File 参数修改行,并将结果写入标准输出。 sed 命令包含很多功能,用于

选择要修改的行,并只对选择的行作更改。


(2)s/pattern/replacement/flags

用 replacement 字符串代替在模式空间中首次出现的 pattern


(2)y/pattern1/pattern2/

将所有 pattern1 变量中出现的字符代替为相应的 pattern2 字符。在

pattern1 和 pattern2 变量中的字符数必须相等。换行符用 \n 表示。


要执行全局更改,输入:

sed "s/happy/enchanted/g" chap1 >chap1.new

该命令序列用单词 enchanted 代替每个在文件 chap1 中出现的单词 happy。它将已编辑的版本写入名为

chap1.new 的分离文件。s

子命令末尾的 g 字符告诉 sed 命令在每行作尽可能多的替代。如果没有 g 字符,那么 sed 命令就只会代

替行中首次出现的单词 happy。


sed 命令作为过滤器操作。它从标准输入或在命令行命名的文件中(本例中是

chap1)读取文本、修改文本、并将其写入标准输出。不同于大多数的编辑器,它不替换原始文件。在流水

线使用时,这会使 sed 命令成为强大的命令。


sed -n "/food/p" chap3

sed -n 显示文件 chap3 中包含单词 food 的每一行。 通常, sed 命令将编辑过的每行复制到标准输出。 -n 使

sed

命令停止这样做




若显示所有与模式不匹配的行,请输入:

grep -v "^#" pgm.s

这将显示 pgm.s 中首字母不是 #(井字符)的所有行。

若显示文件 file1 中与 abc 或 xyz 字符串匹配的所有行,请输入:

grep -E "abc|xyz" file1


若在名为 test2 的文件中搜索 $(美元符号) ,请输入:

grep \\$ test2

为了强制 shell 将 \$(单反斜杠和美元符号)传递给 grep 命令,必须要使用 \\ (双反斜杠) 。 \ (单反斜杠)

字符可通知 grep

命令将其后的字符(本例中为 $)视作原义字符而不是表达式字符。


VI

:e!重新编辑当前文件并废弃所有更改。

:e + File 从最后开始编辑指定文件。

:e + Number File 从指定行号开始编辑指定文件。



shell 之sed grep 小记

标签:编辑器   换行符   字符串   happy   单词   

原文地址:http://21024.blog.51cto.com/11024/1833504

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!