Em vez de procurar no sistema operacional, veja os scripts usados para criar os programas.
Qualquer script configure
gerado pelo autoconf contém sed-scripts e ele próprio gera um script que contém um sed-script. Isso substitui os valores dos nomes nos arquivos de modelo, como Makefile.in
, para produzir Makefile
. Por exemplo (convenientemente encontrado com a pesquisa na web) esse pedaço de um arquivo config.status
para distcc ilustra como sed
é usado:
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///
q
}
/^X\(\/\/\)[^/].*/{
s///
q
}
/^X\(\/\/\)$/{
s///
q
}
/^X\(\/\).*/{
s///
q
}
s/.*/./; q''
test -d "$as_dir" && break
done
Além do autoconf, o script é útil para outros aspectos da construção (e instalação) de programas. O script manlinks.sed
nas ncurses é longo o suficiente para ser considerado como um programa. / p>
É claro que você pode usar grep
para encontrar sed
usado. No entanto, é comum usar um sufixo de arquivo ".sed" para scripts independentes. "locate .sed"
encontra esses.
Em uma verificação rápida em minha máquina, há um script sed extremamente longo (mais de duas mil linhas, contando comentários):
#!/usr/5bin/sed -nf
#r
#r sokoban.sed - aurlio marinho jargas <[email protected]>
#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 <http://www.rickadams.org/adventure/a_history.html>
#r GPL levels took from Mike Sharpe's sokoban.vim <http://vim.sourceforge.net>
#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.
(Alguém fez uma versão colorida ).
Esse é um dos três scripts usados para testar sed
nas "ferramentas de herança":
-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
Da mesma forma, o programa sed tem um exemplo interessante:
#!/bin/sed -nf
# dc.sed - an arbitrary precision RPN calculator
# Created by Greg Ubben <[email protected]> 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<!*]s! 20l!xp" | dc.sed
# sin(ln(7)): echo "s(l(7))" | bc -c /usr/lib/lib.b | dc.sed
# hex to base 60: echo "60o16i 6B407.CAFE p" | dc.sed
# tests most of dc.sed: echo 16oAk2vp | dc.sed
#
# To debug or analyze, give the dc Y command as input or add it to
# embedded dc routines, or add the sed p command to the beginning of
# the main loop or at various points in the low-level sed routines.
# If you need to allow [|~] characters in the input, filter this
# script through "tr '|~' ''" first (or use dc.pl).
Da mesma forma, há uma página com uma versão colorida de dc.sed
No entanto, os scripts autoconf e build são onde você pode encontrar uso produtivo de sed
.
Leitura adicional: