sed

提供: MacWiki
2012年7月1日 (日) 18:26時点におけるMebaR (トーク | 投稿記録)による版

移動: 案内検索

sed とは?

Mac OS X に標準で搭載されているテキスト変換、抽出などを行うのに使用されるプログラム。詳しくは Wikipedia:sed などを参照して下さい。iSED は旧Mac OSでも使用できます。

iSED

Tips

テキストの一部を抽出

  • 1行目から最初の空行までを表示
sed -n '1,/^$/p' filename.txt

1行目から最初の空行までを除いて表示

sed '1,/^$/d' filename.txt

拡張正規表現を使うには

sed で用いることのできる正規表現は POSIX で分類されるところの基本正規表現 (Basic Regular Expressions - BRE) になります。 BRE では、パターンの繰り返し回数を指定する +, ?, {m,n} や lookahead を表す (?=...), (?!...) の記法がサポートされていません。

拡張正規表現 (Extended Regular Expression - ERE) を使いたい場合には、sed の -E オプションを利用できます。 ただし、-E オプションは FreeBSD 由来の sed でしか使えないことに注意してください。 (Mac OS X の sed は FreeBSD の系統に属します。)

あるいは、perl のワンライナーで済ませる方法もあります。可搬性を考えるなら、こちらのほうが良いでしょう。

(ex.)
$ perl -pi.bak -e "s|foo|bar|g" zod.txt


GNU sed

標準搭載されている sed ではなく GNU sed もインストールしてもよい。解説は http://homepage.mac.com/matsuan_tamachan/software/GnuSed.html

$ /usr/local/bin/sed --version
GNU sed version 4.2.1


Wiki内の関連ページ