#navi(../)
* キーワードからキーワードまでの文字列を抜き出す方法 [#pa40a0cb]
htmlのあるタグからあるタグまでという感じで指定したキーワードから指定したキーワードまでの文字列を抽出する方法を以下に記します。
#contents
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)
* 関連資料 [#oade1d80]
-[[キーワードからキーワードまでの文字列を抜き出す方法・sedコマンド>逆引きUNIXコマンド/キーワードからキーワードまでの文字列を抜き出す方法・sedコマンド]]
-[[sedを使ってスペースの文字列操作を行う>逆引きUNIXコマンド/sedを使ってスペースの文字列操作を行う]]
-[[sedを使って改行のみ、スペースのみの行を削除する>逆引きUNIXコマンド/sedを使って改行のみ、スペースのみの行を削除する]]
-[[指定した範囲の行を取得する方法>逆引きUNIXコマンド/指定した範囲の行を取得する方法]]
-[[sedで指定した行を削除する方法>逆引きUNIXコマンド/sedで指定した行を削除する方法]]
-[[sedコマンドで大文字小文字を区別せずに置換する方法>逆引きUNIXコマンド/sedコマンドで大文字小文字を区別せずに置換する方法]]
-[[sedでディレクトリ文字列が格納されている環境変数等を展開して置換したい>逆引きUNIXコマンド/sedでディレクトリ文字列が格納されている変数を展開して置換する]]
-[[grepで大文字小文字を区別しないで検索する>逆引きUNIXコマンド/grepで大文字小文字を区別しないで検索する]]
-[[sedでスラッシュを置換する方法>逆引きUNIXコマンド/sedでスラッシュを置換する方法]]
* sedコマンドによりキーワード間の文字列を取得する [#k6412e3a]
以下のようなhtmlファイルがあったとして、文字列を抽出します。
$ cat sample.html
<html>
<head>
<title>hello world</title>
</head>
<body>
hello
konnichiwa
nihao
</body>
</html>
* 実行例 - <body>〜</body>までを抽出 [#u045dfc5]
sed -n '/キーワード/,/キーワード/p' ファイル名
または
cat ファイル名 | sed -n '/キーワード/,/キーワード/p'
以下の実行例は、<body>〜</body>を抽出しています。~
</body>の/の前に\をつけてエスケープしています。
$ sed -n '/<body>/,/<\/body>/p' sample.html
<body>
hello
konnichiwa
nihao
</body>
* 実行例 - 指定行からキーワードまで [#ra573534]
sed -n '指定行,/キーワード/p' ファイル名
または
cat ファイル名 | sed -n '指定行,/キーワード/p'
以下の実行例は上記のhtmlファイルを利用して7行目から</body>までを抽出しています。
$ cat sample.html | sed -n '7,/<\/body>/p'
konnichiwa
nihao
</body>
#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)