shell编程高级之sed编辑器
2015-12-04 21:27
459 查看
简介
#流编辑器
#可以基于输入到命令行的或是存储在命令文本文件中的命令来处理数据流中的数据.
#每次读取一行,用提供的编辑器命令匹配数据,按命令中指定的方式修改流中的数据,然将生成的数据输出到STDOUT.在流编辑器将所有命令与一行数据进行匹配后,它会读取下一行并重复这个过程直到处理完所有数据.
#sed 自身不会修改文本文件的数据.只将修改后的数据发送到STDOUT
#sed 命令选项
#在命令行使用
#修改文件
#在命令行使用多个编辑器命令
#从文件中读取编辑器命令 sed -f 编辑器命令文件名 数据文件名
sed编辑器基础
#更多的替换选项
# 替换标记
# 替换字符
#使用其他字符来作为sed命令的字符串分隔符
#只修改文本中第二行数据
#修改文本中第二行和第十行之间的数据
#修改文本中第二行到最后一行的数据
#使用文本模式过滤器
#删除行
#不加n则删除所有,n代表第几行
#$代表文本文件的文件尾
#插入和附加文本
#$代表文本文件的文件尾
#在文本行前插入 i
#在文本行后追加 a
#修改行
# 使用文本模式
#转换命令
#字符级.全局替换.
#回顾打印
#打印行
#p 打印文本行
#= 打印行号
#l 列出行
#使用sed和文件一起
#向文件写入
#读取
#$表示文件尾
#文本模式
#流编辑器
#可以基于输入到命令行的或是存储在命令文本文件中的命令来处理数据流中的数据.
#每次读取一行,用提供的编辑器命令匹配数据,按命令中指定的方式修改流中的数据,然将生成的数据输出到STDOUT.在流编辑器将所有命令与一行数据进行匹配后,它会读取下一行并重复这个过程直到处理完所有数据.
#sed 自身不会修改文本文件的数据.只将修改后的数据发送到STDOUT
sed options script file
#sed 命令选项
选项 | 描述 |
---|---|
-e script | 在处理输入时,将script中指定的命令添加到运行的命令中 |
-f file | 在处理输入时,将file中指定的命令添加到运行的命令中 |
-n | 不要为每个命令生成输出,等待print命令来输出 |
sed echo "This is a test" | set 's/test/big test/'
#修改文件
sed 's/dog/cat/' data.txt
#在命令行使用多个编辑器命令
sed -e 's/This/That/; s/test/big test/'
#从文件中读取编辑器命令 sed -f 编辑器命令文件名 数据文件名
sed编辑器基础
#更多的替换选项
# 替换标记
s/pattern/replacement/flags
标记 | 描述 |
---|---|
数字 | 替换第几处 |
g | 全局替换 |
p | 打印内容 |
w file | 将替换的结果写入到文件中 |
echo "This test is a big test" | sed 's/test/Test/' echo "This test is a big test" | sed 's/test/Test/2' echo "This test is a big test" | sed 's/test/Test/g' echo "This test is a big test" | sed 's/test/Test/p' echo "This test is a big test" | sed 's/test/Test/pg'
# 替换字符
#使用其他字符来作为sed命令的字符串分隔符
sed 's!/bin/bash!/bin/sh' /etc/passwd
#只修改文本中第二行数据
sed '2s/dog/cat/' data1
#修改文本中第二行和第十行之间的数据
sed '2,10s/dog/cat/' data1
#修改文本中第二行到最后一行的数据
sed '2,$/s/dog/cat/' data1
#使用文本模式过滤器
sed '/wangjingj/s/bash/csh/' /etc/passwd
sed '/pattern/s/pattern/replacement/flags' /etc/passwd
#删除行
#不加n则删除所有,n代表第几行
#$代表文本文件的文件尾
sed 'n1,n2($)d' data1
#插入和附加文本
#$代表文本文件的文件尾
#在文本行前插入 i
sed 'ni\ # textcontent'
#在文本行后追加 a
sed 'na\ # textcontent'
#修改行
sed 'nc\ # textcontent' data1
# 使用文本模式
sed '/wang n/c\ # textcontent'
#转换命令
sed 'ny/inchars/outchars/'
#字符级.全局替换.
#回顾打印
#打印行
#p 打印文本行
#= 打印行号
#l 列出行
#使用sed和文件一起
#向文件写入
sed 'n1,n2w filename' data1
#读取
sed 'nr filename' data1..读取filename文件 插入到data1的数据流的第n行中
#$表示文件尾
#文本模式
sed '/pattern n/r filename' data1
相关文章推荐
- shell编程高级之函数
- hbase shell的一些简单命令
- .bash_profile和.bashrc的区别(如何设置生效)
- Shell命令sshpass非交互SSH密码验证
- android-studio开发NDK错误记录:bash: ../../build/intermediates/classes/debug: is a directory
- PowerShell检测并添加用户权限
- linux shell自带变量
- shell脚本三剑客之sed命令
- shell脚本三剑客之grep命令
- shell脚本三剑客之awk命令
- linux shell中 if else以及大于、小于、等于逻辑表达式 简介
- Calabash(1)在MacOS10.11上安装
- Linux学习篇之---shell下输出带颜色文字
- /etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc和~/.bash_logout
- Shell编程之变量赋值和引用
- 如何实现shell并发
- shell 使用
- -bash: brew: command not found
- 【安卓手机通用】android adb shell 命令大全
- powershell 正则人民币转大写