cleanup
[cmdllinux.git] / scripts / _find_file_section_shortest.sh
blobb038e509f3ed03197ae68548b1c2a0a47263cc99
1 #set -x
2 #read file sections - key word to key word
3 #use -- param if -* pattern
4 #sed -n '3,5p' file
5 [ -z "$1" ] && exit 1
6 setparam=1
7 while true; do
8 parm="$1"
9 if [ "$parm" = "-P" ]; then
10 [ -z "$grep_param" ] && grep_param="-P" || grep_param="$grep_param -P"
11 shift
12 continue
13 else
14 setparam=
16 if [ "$parm" = "-I" ]; then
17 [ -z "$grep_param" ] && grep_param="-i" || grep_param="$grep_param -i"
18 shift
19 continue
20 else
21 setparam=
23 #use -- param if -* pattern
24 if [ "$parm" = "--" ]; then
25 shift
26 break
28 if [ -z "$setparam" ]; then
29 if [ "$parm" != "$(echo "$parm" | sed 's%^-%%')" ]; then
30 echo "$0: No such param"
31 exit 1
32 else
33 break
36 done
38 file="$1"
39 [ ! -f "$file" ] && exit 1
41 grep1="$2"
42 [ "$grep1" != "${grep1#-}" ] && grep1="\\$grep1"
44 grep2="$3"
45 [ "$grep2" != "${grep2#-}" ] && grep2="\\$grep2"
47 set -- $grep_param
49 TMP1="$grep2"
50 grep2="$grep1"
51 grep1="$TMP1"
53 NUMS1=$(grep $@ -n "$grep1" "$file" | cut -d : -f 1)
54 NUMS2=$(grep $@ -n "$grep2" "$file" | cut -d : -f 1)
56 for i in $NUMS1; do
57 ENDNUMA=
58 for j in $NUMS2; do
59 if [ "$j" -lt "$i" ]; then
60 OLD_NUM="$j"
61 continue
62 else
63 ENDNUMA="$OLD_NUM"
64 break
66 done
67 [ -z "$ENDNUMA" ] && ENDNUMA="$OLD_NUM"
68 [ ! -z "$ENDNUMA" ] && sed -n "$ENDNUMA,${i}p" "$file"
69 done