#sed替换文件中的空格或tab键为指定的单分隔符# 替换两个或多个空格为一个空格sed 's/[ ][ ]*/ /g' file_name# 替换两个或多个空格为分隔符:sed 's/[ ][ ]*
#sed替换文件中的空格或tab键为指定的单分隔符
# 替换两个或多个空格为一个空格sed 's/[ ][ ]*/ /g' file_name# 替换两个或多个空格为分隔符:sed 's/[ ][ ]*/:/g' file_name
如果空格与tab共存时用下面的命令进行替换
# 替换成空格sed 's/[[:space:]][[:space:]]*/ /g' filename# 替换成分隔符:sed 's/[[:space:]][[:space:]]*/:/g' filename
一个使用的示例:
# 提取jpeglib.h文件中的JPEG_LIB_VERSION的定义版本号字符串# 文件中的该行为: #define JPEG_LIB_VERSION 62 /* version 62 */# 结果为 62sed -n '/#define JPEG_LIB_VERSION/s/[[:space:]][[:space:]]*/ /gp' jpeglib.h |cut -d " " -f 3
sed重要注意事项
- sed支持正则表达式,空格的表示方法[[:space:]]
- 利用-i选项可以直接修改原来文件,不必生成新文件
- 为了引入shell变量,必须使用双引号(很重要)
- 例子sed -i "s/#server[[:space:]]$1/server $1/g" $2 将 server加若干空格加指定内容 前面的所有井号去掉