Linux常用命令之sed
2016-07-21 11:53
274 查看
在写Shell脚本的时候经常会用到修改文件
比如配置文件configure
之前一直用的替换方法比较Low
后来发现这种方式替换文件,文件的格式会混乱(对格式没有严格要求的可以用这种方法)
![](http://img.blog.csdn.net/20160721114715397)
后来发现是用sed命令效果更好
![](http://img.blog.csdn.net/20160721114908905)
输出格式没变
我们可以来看看sed的帮助
输出使用详情
而
这里的
-i直接修改并保存
abc表示待替换的字符串
xxx表示修改后的字符串
file表示文件
\s表示空格的转义
比如配置文件configure
#!/bin/sh FFMPEG_UPSTREAM=https://github.com/FFmpeg/FFmpeg.git X264_UPSTREAM=http://git.videolan.org/git/x264.git FFMPEG_LOCAL_REPO=liblocal
之前一直用的替换方法比较Low
conf=$(cat configure) conf=${conf//liblocal/libffmpeg} echo $conf > configure
后来发现这种方式替换文件,文件的格式会混乱(对格式没有严格要求的可以用这种方法)
后来发现是用sed命令效果更好
sed -i 's/liblocal/libffmpeg/g' configure
输出格式没变
我们可以来看看sed的帮助
sed --help
输出使用详情
用法: sed [选项]... {脚本(如果没有其他脚本)} [输入文件]... -n, --quiet, --silent 取消自动打印模式空间 -e 脚本, --expression=脚本 添加“脚本”到程序的运行列表 -f 脚本文件, --file=脚本文件 添加“脚本文件”到程序的运行列表 --follow-symlinks 直接修改文件时跟随软链接 -i[SUFFIX], --in-place[=SUFFIX] edit files in place (makes backup if SUFFIX supplied) -l N, --line-length=N 指定“l”命令的换行期望长度 --posix 关闭所有 GNU 扩展 -r, --regexp-extended 在脚本中使用扩展正则表达式 -s, --separate 将输入文件视为各个独立的文件而不是一个长的连续输入 -u, --unbuffered 从输入文件读取最少的数据,更频繁的刷新输出 -z, --null-data separate lines by NUL characters --help 打印帮助并退出 --version 输出版本信息并退出 如果没有 -e, --expression, -f 或 --file 选项,那么第一个非选项参数被视为 sed脚本。其他非选项参数被视为输入文件,如果没有输入文件,那么程序将从标准 输入读取数据。 GNU版sed主页: <http://www.gnu.org/software/sed/>。 使用GNU软件所需帮助文档: <http://www.gnu.org/gethelp/>。 将错误报告通过电子邮件发送到:<bug-sed@gnu.org>. 请务必将单词“sed”放在标题的某处。
而
sed -i 's/abc/xxx/g' file
这里的
-i直接修改并保存
abc表示待替换的字符串
xxx表示修改后的字符串
file表示文件
\s表示空格的转义
相关文章推荐
- Linux socket 初步
- android wifi 无线调试
- Linux Kernel 4.0 RC5 发布!
- linux lsof详解
- linux 文件权限
- Linux 执行数学运算
- 10 篇对初学者和专家都有用的 Linux 命令教程
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- 动态清空 nohup 输出文件
- install scrapy with pip and easy_install
- Ubuntu Linux使用体验
- c语言实现hashmap(转载)