portable sed usage
authorPaul Hänsch <paul@plutz.net>
Sat, 23 Jan 2021 13:06:42 +0000 (14:06 +0100)
committerPaul Hänsch <paul@plutz.net>
Sat, 23 Jan 2021 13:06:42 +0000 (14:06 +0100)
cards/filter_card.sh
cards/list.sh
categories/edit_categories.sh
categories/update_categories.sh
courses/list.sh
courses/update_course.sh
courses/widgets.sh

index 183278f..e7d1114 100755 (executable)
@@ -30,7 +30,7 @@ filter="$(
     else
       printf '^%s:%s' "$filter_type" "$filter_text"
     fi
-  done | sed -r \
+  done | sed -E \
          's;\|+;\|;g;   s;\^+;\^;g;   s;:\|;:;g;
           :X;   s;\^[^:]*:\^;\^;g;   /\^[^:]*:\^/bX;
           s;^\^;;;   s;\^[^:]*:$;;;'
index 421ff3a..ab67fbd 100755 (executable)
@@ -149,7 +149,7 @@ filter_cards(){
     printf '%s\n' "$cardfile"
     cat "$cardfile"
   done \
-  | sed -En ':X; /\nEND:VCARD\r?$/!{ N; bX; }; h; s;\n.*$;;; x; s;^[^\n]+\n;;;
+  | sed -nE ':X; /\nEND:VCARD\r?$/!{ N; bX; }; h; s;\n.*$;;; x; s;^[^\n]+\n;;;
              '"$upcase""$fex"
 }
 
index fe97790..232499b 100755 (executable)
@@ -25,7 +25,7 @@ newcat="$(POST newcat)"
 if [ "$(POST add)" = "add" ]; then
   printf %s\\n "$newcat" >>"$catfile"
 elif [ "$remove" ]; then
-  sed -Ei '/^'"${remove}"'$/d' "$catfile"
+  sed -E -i '/^'"${remove}"'$/d' "$catfile"
 fi
 
 REDIRECT "/categories/"
index 944c3d2..108c5d5 100755 (executable)
@@ -30,7 +30,7 @@ for card in "${_DATA}"/vcard/*.vcf; do
   n=1; while cardcats="${cardcats}${cardcats:+,}$(pdi_value "$vcf" CATEGORIES $n)"; do n=$((n+1)); done
 
   if [ "${postcats}" != "${cardcats}" ] && LOCK "$card"; then
-    sed -ri '
+    sed -E -i '
       /^CATEGORIES[;:]/d
       /^END;?:VCARD *\r?$/iCATEGORIES:'"${postcats%,}"'\r
     ' "${card}"
index d8d3bf7..e9ae7bc 100755 (executable)
@@ -81,7 +81,7 @@ course_mail() {
     cat "${_DATA}/vcard/${card}"
   done \
   | pdi_load - \
-  | sed -rn 's;^EMAIL(\;[^:]*)*:(.+)\r?$;\2,;p' \
+  | sed -nE 's;^EMAIL(\;[^:]*)*:(.+)\r?$;\2,;p' \
   | tr -d \\n \
   | unescape
 }
index d76e43a..ea03a72 100755 (executable)
@@ -108,7 +108,7 @@ case "$(POST action)" in
     REDIRECT "/courses/?e=${course}"
     ;;
   addfield\ [A-Z]*)
-    newfield="$(POST action |sed -rn '1s;^addfield ([A-Z][A-Z0-9-]*)$;\1;p')"
+    newfield="$(POST action |sed -nE '1s;^addfield ([A-Z][A-Z0-9-]*)$;\1;p')"
     ics="$(pdi_update_value "$ics" "$newfield" $(( $(pdi_count "$ics" "$newfield") + 1 )) '')"
     printf '%s' "$ics" |grep -vx '' >"$tempfile"
     REDIRECT "/courses/?e=${course}"
@@ -118,7 +118,7 @@ case "$(POST action)" in
       grep -F "${course}       " "$attfile" |while read junk card; do
         touch "$_DATA/vcard/${card}"
       done
-      sed -i -r "/^${course}   .+\$/d" "$attfile"
+      sed -E -i "/^${course}   .+\$/d" "$attfile"
       seq 1 $(POST_COUNT attendance) |while read n; do
         printf '%s     %s\n' "$course" "$(POST attendance $n)"
       done >>"$attfile"
index 6123aa0..5b5288c 100755 (executable)
@@ -35,7 +35,7 @@ w_sort_courses(){
 }
 
 cal_date(){
-  { [ $# -eq 0 ] && cat || printf %s "$*"; } |sed -rnE '
+  { [ $# -eq 0 ] && cat || printf %s "$*"; } |sed -nE '
     2q
     s/^([0-9]{4})([0-9]{2})([0-9]{2})T([0-9]{2})([0-9]{2})([0-9]{2})Z$/\1-\2-\3 \4:\5:\6 UTC/p;t
     s/^TZID=(.+)\:([0-9]{4})([0-9]{2})([0-9]{2})T([0-9]{2})([0-9]{2})([0-9]{2})$/TZ="\1" \2-\3-\4 \5:\6:\7/p;t
@@ -160,10 +160,10 @@ edit_item(){
         local dstart="${dtstart##*-}"; dstart="${dstart%% *}"
 
         local rrule="$(pdi_value "$course" RRULE)"
-        local   rr_int="$(printf %s "$rrule" |sed -rn 's;^(.*\;[        ]*)?INTERVAL=([0-9]+)(\;.*)?$;\2;p')"
-        local rr_count="$(printf %s "$rrule" |sed -rn 's;^(.*\;[        ]*)?COUNT=([0-9]+)(\;.*)?$;\2;p')"
-        local  rr_freq="$(printf %s "$rrule" |sed -rn 's;^(.*\;[        ]*)?FREQ=(DAILY|WEEKLY|MONTHLY|YEARLY)(\;.*)?$;\2;p')"
-        local rr_until="$(printf %s "$rrule" |sed -rn 's;^(.*\;[        ]*)?UNTIL=([0-9]{8}T[0-9]{6}Z)(\;.*)?$;\2;p')"
+        local   rr_int="$(printf %s "$rrule" |sed -nE 's;^(.*\;[        ]*)?INTERVAL=([0-9]+)(\;.*)?$;\2;p')"
+        local rr_count="$(printf %s "$rrule" |sed -nE 's;^(.*\;[        ]*)?COUNT=([0-9]+)(\;.*)?$;\2;p')"
+        local  rr_freq="$(printf %s "$rrule" |sed -nE 's;^(.*\;[        ]*)?FREQ=(DAILY|WEEKLY|MONTHLY|YEARLY)(\;.*)?$;\2;p')"
+        local rr_until="$(printf %s "$rrule" |sed -nE 's;^(.*\;[        ]*)?UNTIL=([0-9]{8}T[0-9]{6}Z)(\;.*)?$;\2;p')"
         local rr_uyear="${rr_until%????T??????Z}"
         local rr_umonth=${rr_until#????}; rr_umonth="${rr_umonth%??T??????Z}"
         local   rr_uday=${rr_until#??????}; rr_uday="${rr_uday%T??????Z}"