#author("2019-09-05T21:14:53+09:00","","")
#author("2019-09-05T21:17:04+09:00","","")
#navi(../)

*指定した範囲行のテキストデータを取得する方法 [#cdf96798]
テキストファイルの何行目から何行目までと指定した範囲のテキストデータを取得する方法を以下に記します。~
sedコマンド、headとtailコマンドの組み合わせで取得する2つの例を記します。

#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)
#contents

*関連資料 [#da235c1d]
-[[指定した範囲の行を取得する方法>逆引きUNIXコマンド/指定した範囲の行を取得する方法]]
-[[指定した行に行挿入したい(出現したキーワードの前後行に行挿入したい)>逆引きUNIXコマンド/指定した行に行挿入したい]]
-[[指定した文字数毎に文字を挿入したい>逆引きUNIXコマンド/指定した文字数毎に文字を挿入したい]]
-[[sedで指定した行を削除する方法>逆引きUNIXコマンド/sedで指定した行を削除する方法]]
-[[キーワードからキーワードまでの文字列を抜き出す方法・sedコマンド>逆引きUNIXコマンド/キーワードからキーワードまでの文字列を抜き出す方法・sedコマンド]]
-[[sedを使ってスペースの文字列操作を行う>逆引きUNIXコマンド/sedを使ってスペースの文字列操作を行う]]
-[[sedを使って改行のみ、スペースのみの行を削除する>逆引きUNIXコマンド/sedを使って改行のみ、スペースのみの行を削除する]]
-[[sedでスラッシュを置換する方法>逆引きUNIXコマンド/sedでスラッシュを置換する方法]]
-[[指定した範囲の行を取得する方法>逆引きUNIXコマンド/指定した範囲の行を取得する方法]]

* 使用するテキストファイル [#a77fc630]
以下のキャプチャに示すテキスト内容のテキストファイルを使用し、以下説明および実行例を記します。

-テストデータ~
10行分のテキストデータであることを確認しています。
#ref(head-tail-01.png)
#br

* sedを利用して範囲データを取得する [#u0c4790e]
sedを利用する場合は、以下の方法で取得できます。
** sedを使った実行例 [#h9b525f3]
以下の実行結果は、上記のhead, tailを使った結果と同じになっています。
以下の構文で開始行を終了行を指定し指定範囲の行を取得することができます。
-コマンド
 sed -n '開始行,終了行p' ファイル名
または
 cat ファイル名 | sed -n '開始行,終了行p'
-実行結果~
上記と同じ10行分のテキストデータを利用します。
10行分のテキストデータを利用しています。
#ref(sed-01.gif)


* headとtailコマンドを利用して範囲データを取得する [#lc2d7588]
先頭から指定した行数を取得できるheadコマンドと最後尾の行から指定した行数を取得できるtailコマンドを利用し指定した範囲のテキストデータを取得します。
-[[指定した行番号から最終行までを表示する・tail>逆引きUNIXコマンド/指定した行番号から最終行までを表示する・tail]]

**headとtailを使った実行例 [#i6b6a36d]
-コマンド
 cat text.txt | head -終了行 | tail -`expr 終了行 - 開始行 + 1`
-実行結果~
わかりやすいように変数START, ENDに値を設定しコマンドを実行しています。~
STARTとENDに設定した範囲のテキストデータが表示されていることが確認できます。
#ref(head-tail-02.png)
#br

以上、sed, head + tailで指定した範囲の行を取得する方法でした。

#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS