文本处理 之 sed
sed 命令也是非常有用,主要用来将数据进行选取, 替换, 删除, 新增等操作。
以下先列几个不错的网上教程:
-
man sed
man sed | less
-
sed mannual
sed mannual -
sed introduction
sed introduction -
鸟哥 sed
鸟哥 sed -
wikipedia-sed
wiki -
sed 简明教程
sed 简明教程 -
sed 教程
sed 命令
以下为慕课网上的tony 老师的linux 相关教程的笔记:
sed [选项] '[动作]' 文件名
选项:
-n : 一般sed命令会把所有数据都输出到屏幕, 加上 -n 则只会把经过 sed 命令处理的行输出到屏幕。
-e : 允许对输入数据应用多条 sed 命令编辑。
-i : 用 sed 的修改结果直接修改读取数据的文件, 而不是由屏幕输出。
动作:
a : 追加,在当前行后添加一行或多行
c : 行替换, 用 c 后面的字符串替换原数据行
i : 插入, 在当前行前插入一行或多行
d : 删除, 删除指定的行
p : 打印, 输出指定的行
s : 字符替换, 用一个字符替换另外一个字符串
example
行数据操作:
sed -n '2p' a.txt
# 查看文件的第二行
sed '2,4d' a.txt
# 删除 2-4 行数据
sed '2c hello' a.txt
# 将第2行替换为 hello
字符串替换:
sed 's/旧字符串/新字符串/g' 文件名
$ sed '3s/60/90/g' a.txt
# 在第三行中, 把60 换成 90
$ sed -e 's/feng//g; s/cang//g' a.txt
# 同时把 'feng','cang' 替换为空字符,-e 允许多个动作