- 论坛徽章:
- 0
|
用awk可以,但是没有下面的方法快,如果你有更快的方法,欢迎拍砖 - #!/bin/bash
- #
- # $Id: cutByStr.func,v 0.1 2010-02-18 13:51:37 zhzxy1/zh/ccb $
- #
- # 截取两个字符串之间的内容
- #
- # cut_by_str 文件名 [开始字符串] [结束字符串]
- #
- cut_by_str() {
- local INPUT=$1
- local START=$2
- local STOP=$3
- local bnu=
- local enu=
- if [ -n "$STOP" ]; then
- bnu=`grep -n -m 1 "$START" $INPUT | awk -F: '{print $1}'`
- enu=`grep -n -m 1 "$STOP" $INPUT | awk -F: '{print $1}'`
- tail -n +$bnu $INPUT | head -n $((enu-bnu))
- else
- if [ -n "$START" ]; then
- bnu=`grep -n -m 1 "$START" $INPUT | awk -F: '{print $1}'`
- tail -n +$bnu $INPUT
- else
- cat $INPUT
- fi
- fi
- }
复制代码 |
|