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 从指定行号开始编辑指定文件。