Linux常用命令之sed
在写Shell脚本的时候经常会用到修改文件比如配置文件configure#!/bin/shFFMPEG_UPSTREAM=https://github.com/FFmpeg/FFmpeg.gitX264_UPSTREAM=http://git.videolan.org/git/x264.gitFFMPEG_LOCAL_REPO=liblocal之前一直用的替换方法比较Lowconf=$(ca
·
在写Shell脚本的时候经常会用到修改文件
比如配置文件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表示空格的转义
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献2条内容
所有评论(0)