sed 's/[[:space:]][[:space:]]*/ /g' filename # 替换成分隔符: sed 's/[[:space:]][[:space:]]*/:/g' filename

一个使用的示例:

# 提取jpeglib.h文件中的JPEG_LIB_VERSION的定义版本号字符串
# 文件中的该行为: #define JPEG_LIB_VERSION   62  /* version 62 */
# 结果为 62
sed -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加若干空格加指定内容 前面的所有井号去掉
  •