Изменение HISTTIMEFORMAT оставляет записи с неправильной датой [дубликат]

Вместо того, чтобы заглядывать в операционную систему, посмотрите сценарии, используемые для сборки программ.

Любой сценарий configure , сгенерированный autoconf, содержит сценарии sed, а сам генерирует сценарий, содержащий сценарий sed. Это заменяет значения для имен в файлах шаблонов, таких как Makefile.in , для создания Makefile . Например (удобно найти с помощью веб-поиска) этот фрагмент config.Файл status для distcc показывает, как используется sed :

    while :; do
      case $as_dir in #(
      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
      *) as_qdir=$as_dir;;
      esac
      as_dirs="'$as_qdir' $as_dirs"
      as_dir=`$as_dirname -- "$as_dir" ||
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
     X"$as_dir" : 'X\(//\)[^/]' \| \
     X"$as_dir" : 'X\(//\)$' \| \
     X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X"$as_dir" |
    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
        s//\1/
        q
      }
      /^X\(\/\/\)[^/].*/{
        s//\1/
        q
      }
      /^X\(\/\/\)$/{
        s//\1/
        q
      }
      /^X\(\/\).*/{
        s//\1/
        q
      }
      s/.*/./; q'`
      test -d "$as_dir" && break
    done

Помимо autoconf, сценарии полезны для других аспектов сборки (и установки) программ. Скрипт manlinks.sed в ncurses достаточно длинный, чтобы его можно было рассматривать как программу.

Конечно, вы можете использовать grep , чтобы найти использованный sed . Однако для автономных сценариев обычно используется суффикс файла ".sed". "locate .sed" находит их.

При быстрой проверке на моей машине есть один очень длинный сценарий sed (более двух тысяч строк, включая комментарии):

#!/usr/5bin/sed -nf
#r
#r sokoban.sed - aurlio marinho jargas 
#r Changes by Gunnar Ritter, October 2002.
#r
#r Sccsid @(#)sokoban.sed       1.7 (gritter) 10/12/03
#r
#r motivated by reading the amazing Adventure (Colossal Cave) history
#r      
#r GPL levels took from Mike Sharpe's sokoban.vim 
#r
#r IMPORTANT
#r this script has terminal control chars, so you must DOWNLOAD this
#r file. just copy/paste or printing it to a file (lynx) will NOT work.
#r
#r THE GAME
#r you know sokoban. everybody knows sokoban.

(Кто-то сделал раскрашенную версию его).

Это один из трех скриптов, используемых для тестирования sed в «инструментах семейной реликвии»:

-rw-r--r--   1 tom           285 Oct  6 2002    makefile 
-rw-r--r--   1 tom          3664 Oct 11 2003    hanoi.sed
-rw-r--r--   1 tom          2338 Oct 11 2003    math.sed
-rw-r--r--   1 tom         42552 Oct 11 2003    sokoban.sed

Аналогично, программа sed имеет интересный пример:

#!/bin/sed -nf
#  dc.sed - an arbitrary precision RPN calculator
#  Created by Greg Ubben  early 1995, late 1996
#
#  Dedicated to MAC's memory of the IBM 1620 ("CADET") computer.
#  @(#)GSU dc.sed 1.1 06-Mar-1999 [non-explanatory]
#
#  Examples:
#       sqrt(2) to 10 digits:   echo "10k 2vp" | dc.sed
#       20 factorial:           echo "[d1-d1

Аналогично, есть страница с цветная версия dc.sed

Однако в autoconf и скриптах сборки вы можете продуктивно использовать sed .

Дополнительная литература:

16
23.08.2013, 00:51
0 ответов

Теги

Похожие вопросы