を学ぶとき、bash
Linuxの新しいインストールにすでに存在するbashスクリプトを研究することが非常に役に立つことがわかりました。多くのあいまいな機能のほとんどのチュートリアルで。/etc/profile
/etc/rc.d/init.d/
bash
今学んでおり、sed
機能リストははるかに短いですが(それですべての機能を見たことがわかります)、sed
実際にsed
使用される存在する生産、チュートリアルの例だけではありません。
sed
そのために、UbuntuやCentOSなどのよく知られているLinuxディストリビューションにすでに存在するスクリプトを調べたいと思います。問題は、そのようなスクリプトがどこにあるのかわからないということです。私はこれを試しましたが、file /bin/* | grep script | sed 's/:.*//' | xargs grep sed
結果はありませんでした。 file /sbin/* | grep script | sed 's/:.*//' | xargs grep -c sed
私が見ているいくつかの結果を返しますが、これまでに確認した結果はすべてsed
スクリプトに含まれているコード、または1行のコードにすぎません。bash
sh
sed
Linuxボックスで実際のスクリプトをどこで見つけることができますか?それとも、sed
実際に生産に使用されるいくつかのスクリプトを見つけるのに最適なオンライン場所がありますか? (読むことはsedtris
私の目的にあまり役に立ちません。;)
答え1
努力する:
grep -w sed /etc/init.d/*
grep -w sed /etc/grub.d/*
grep -w sed /usr/bin/*
1つ目は私のシステム(debian)で25個のスクリプトを生成し、2つ目は47個のスクリプトを生成します。
このオプションは単語全体を見つけることに制限-w
されています。これにより、「or」などの単語との一致を避けることができます。grep
sed
used
supposedly
答え2
オペレーティングシステムを表示するのではなく、プログラムを構築するために使用されるスクリプトを見てください。
すべてのautoconf生成configure
スクリプトにはsedスクリプトとそれ自体が含まれています。生産するsedスクリプトを含むスクリプト。これはテンプレートファイルの名前をMakefile.in
generateと同じ値に変更しますMakefile
。たとえば(Web検索で簡単に見つけることができます)、このブロックは次のようになります。config.status
distccファイル使用方法を説明しますsed
。
それでも:; #(の$as_dirケース *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\\''/g"`;; *) as_qdir=$as_dir;; イサク 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" $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ キュー } /^X\(\/\/\)[^/].*/{ s//\1/ キュー } /^X\(\/\/\)$/{ s//\1/ キュー } /^X\(\/\).*/{ s//\1/ キュー } s/.*/./;尋ねてください。 テスト -d "$as_dir"&& break 完璧
autoconfに加えて、スクリプトはプログラムの構築(およびインストール)の他の側面に役立ちます。これmanlinks.sed
ncursesのスクリプトは、プログラムと見なされるのに十分な長さです。
もちろん、中古品をgrep
探すのにも使えます。sed
ただし、スタンドアロンスクリプトは通常「.sed」ファイルサフィックスを使用します。 "locate .sed"
それを見つけてください。
私のコンピュータをすばやく確認すると、非常に長いsedスクリプトがあります(コメントを含む2,000行を超える)。
#!/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.
(誰かが作った。カラーバージョンの)。
sed
これは、Heirloomツールでテストするために使用される3つのスクリプトのうちの1つです。
-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 <[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 '|~' '\36\37'" first (or use dc.pl).
同様に、次のページがあります。dc.sedのカラーバージョン
ただし、autoconfとビルドスクリプトを見つけることができますsed
。
追加資料:
答え3
それらはあなたのコンピュータにはなく、おそらく使用されません。しかし、あなたが使用しているこのサイトを検索するよりも悪いことをするかもしれません。5つ以上の回答テキストでsedを検索してください。は、実際の質問に対する答えと一致するためです。