_unix_text_command.pptx

Similar documents
UnixText2.pptx

ソフトウェア基礎 Ⅰ Report#2 提出日 : 2009 年 8 月 11 日 所属 : 工学部情報工学科 学籍番号 : K 氏名 : 當銘孔太

フィルタとは

Taro-cshプログラミングの応用.jt

Java Scriptプログラミング入門 3.6~ 茨城大学工学部情報工学科 08T4018Y 小幡智裕

プレポスト【解説】

情報処理概論(第二日目)

多くのコマンドやソフトウェアは 1 なんらかの情報を受け取り 2 処理し 3 結果を出力する ( 前ページの図 ) cat の処理結果は端末ウィンドウに表示されるが これは cat が結果を標準出力に 吐き出した ( 出力した ) からである 通常 標準出力に吐き出された情報は端末ウィンドウ に表示

ポインタ変数

基礎プログラミング2015

第 3 回情報基礎演習 UNIX / Linux: ファイルシステム シェルを理解しよう! 谷口貴志 Panda に login し 情報基礎演習クラスの VDI から Ubuntu に接続し Linux に login した後, 左 上の Activity 端末のアイオン をクリック 端末 を立ち

関数とは 関数とは 結果を得るために 処理を行う仕組み です Excel2010 には あらかじめ関数が数式として組み込まれています たとえば SUM 関数 は 指定した値をすべて合計する 仕組みです 長い計算式や複雑な計算式を作成せずに 簡単に結果を求めることができます 例合計 =A1+A2+A3

Excel2013 データベース1(テーブル機能と並べ替え)

PowerPoint Presentation

160420c_unix.pptx

操作方法 XXXTOEMF は コマンドライン形式のアプリケーションです 通常のコマンドと同じように コマンドラインからの実行やバッチファイルに組み込むことが可能です インストールについては, 別紙の KDxxxx コンバートソフトの特記事項について を参照してください ここでは 直接コマンドライン

ポインタ変数

練習 4 ディレクトリにあるファイルを直接指定する (cat) cat コマンドを使う (% cat ファイル名 ) と ファイルの内容を表示できた ファイル名のところにパス名を使い ディレクトリ名 / ファイル名 のように指定すると ディレクトリ内にあるファイルを直接指定できる 1 % cat _

Microsoft PowerPoint - スハ?コン利用入門_ _UNIX利用の基礎知識.pptx

PowerPoint Presentation

Excel データ出力ガイドブック 第 1.0 版平成 30 年 9 月 1 日制定 株式会社中電シーティーアイ

(Microsoft Word - 01PowerPoint\217\343\213\211C\203p\203^\201[\203\223\222m\216\257\225\\\216\206.doc)

情報処理概論(第二日目)

k_seminar_hands_on_for_linux_beginner.pptx

シェルプログラミング コマンドをパイプでつなげるだけでは済まないような ある程度まとまった処理を複数のコマンドを制御構文を用いたりしてファイルとしたものを ( シェル ) スクリプトと呼ぶ シェルプログラム バッチなどともいう.bash_profile もシェルスクリプトなので このファイルを解読し

JavaScriptで プログラミング

Microsoft PowerPoint - 09re.ppt [互換モード]

変更履歴 版数変更日変更内容 /9/1 初版設定

図 2 エクスポートによるシェープファイルの新規保存 新規保存するファイルは, より分かりやすい名前をつけて適切なフォルダ (shape フォル ダにまとめておくのがよい ) 上に保存しておく 2 / 10

問題 1 次の文章は 作業環境について述べたものである を解答群 { } より選び その記号で答えよ にあてはまる適切なもの 設問 1. < 図 1>はルーラーの一部である 1に示されるインデントマーカーを移動することにより を設定することができる < 図 1> { ア. 1 行目のインデントイ.

以下のソフトウェアに専用ライセンスを設定することで 変換機能が使えるようになります アプリケーション名バージョン日付 JPGIS-XML ビュー F 7.1.0α 以降 2013/06/27 以降 フリーウェア JPGIS-XML ビュー F のバージョン から XML の 筆 と 図郭

地理情報システム論 外部データとのやりとり レイヤのエクスポートによるシェープファイルの作成金沢区を題材とした操作練習では, すでにマップ上に表示されているレイヤを複製することで, 同一のシェープファイルを, 一方は階級区分図に用い, 他方はチャート表示に用いてオーバーレイ表現

1. はじめに 1. はじめに 1-1. KaPPA-Average とは KaPPA-Average は KaPPA-View( でマイクロアレイデータを解析する際に便利なデータ変換ソフトウェアです 一般のマイクロアレイでは 一つのプロー

Microsoft Word - no103.docx

"GIFT" フォーマットのインポート

Microsoft PowerPoint - InfPro_I6.pptx

Microsoft Word - 09isA11_mod.doc

170420_unix.pptx

PowerPoint プレゼンテーション - 物理学情報処理演習

スライド 1

文法と言語 ー文脈自由文法とLR構文解析2ー

スライド 1

農業・農村基盤図の大字小字コードXML作成 説明書

<4D F736F F D20837D836A B5F93C192E88C AC888D593FC97CD5F2E646F63>

メソッドのまとめ

文字列操作と正規表現

PowerPoint プレゼンテーション

Linux サーバー構築 LINUX サーバー構築目次... 1 第 1 章 LINUX のインストール... 6 第 1 節 CentOS とは... 6 第 1 項 CentOS とは... 6 第 2 節 CentOS インストールの準備... 6 第 1 項 iso ファイルの入手... 6

_Vol17No4.indd

Microsoft PowerPoint - 10Com2.ppt

PowerPoint プレゼンテーション

概要 ABAP 開発者が SAP システム内の SAP ソースまたは SAP ディクショナリーオブジェクトを変更しようとすると 2 つのアクセスキーを入力するよう求められます 1 特定のユーザーを開発者として登録する開発者キー このキーは一度だけ入力します 2 SAP ソースまたは SAP ディクシ

PowerPoint プレゼンテーション

Microsoft PowerPoint - R-intro-04.ppt

データ構造

CONTENTS マニュアルの表記... S01-02_01 1.DataNature Smart 全体概要図... S01-02_11 2. 基本操作... S01-02_ ジョブの作成... S01-02_21 加工条件設定... S01-02_21 Step1: 処理対象データの指

TC5.ids

リスト 1 1 <HTML> <HEAD> 3 <META http-equiv="content-type" content="text/html; charset=euc-jp"> 4 <TITLE> 住所の検索 </TITLE> 5 </HEAD> 6 <BODY> <FORM method=

gengo1-6

オートマトン 形式言語及び演習 1. 有限オートマトンとは 酒井正彦 形式言語 言語とは : 文字列の集合例 : 偶数個の 1 の後に 0 を持つ列からなる集合 {0, 110, 11110,

PowerPoint プレゼンテーション

目次 1. 変換の対象 砂防指定地 XML 作成メニュー シェープファイルからXMLへ変換 砂防指定地 XMLとシェープファイルの対応.csv 変換処理 CSVファイルによる属性指定... 5

ポインタ変数

情報処理概論(第二日目)

<4D F736F F F696E74202D E3F FC96E55F F554E CC8AEE D8EAF2E B8CDD8AB B83685D>

Windows Powershell 入門

ネットワークシステム管理 #01

スライド 1

データ構造

Prog1_6th

8. Windows の補足情報 コマンドの使用についての説明です Windows からのファイル直接印刷 Windows でコマンドを使用したファイル直接印刷の方法についての説明です この機能はネットワーク接続をしているときに使用できます この方法で印刷できるファイルは 本機が搭載しているエミュレ

情報工学実験 C コンパイラ第 2 回説明資料 (2017 年度 ) 担当 : 笹倉 佐藤

操作マニュアルアテンダント

Create!Form V11 - Excel 出力設定

ゲートウェイのファイル形式

V-CUBE One

スライド 1

PowerPoint Presentation

Microsoft Word - No14_sum_mltlng.doc

Open usp Tukubai ってなに? Open usp Tukubai は 売上データの処理や勘定系システムの構築に利用されているエンタープライズ向けの高性能コマンド群 usp Tukubai のオープンソース版です 業務で特によく使われるコマンドを選りすぐって Python で再実装したも

Brekeke PBX - Version 2.1 ARSプラグイン開発ガイド

掲示板の閲覧 掲示板の閲覧 登録権または参照権のある掲示板グループの掲示版を閲覧することができます 各利用者の権限は 管理者によって設定されます 掲示板を閲覧する 1 掲示板画面を表示し 閲覧する掲示が含まれている掲示板グループ 掲示板の順にクリックします 掲示板画面の表示方法 ポータル画面の画面説

( ) Shift JIS ( ) ASCII ASCII ( ) 8bit = 1 Byte JIS(Japan Industrial Standard) X 0201 (X ) 2 Byte JIS ISO-2022-JP, Shift JIS, EUC 1 Byte 2 By

Windows メール設定 - 迷惑メールの振り分け フォルダの作成 迷惑メールの振り分け方 振り分け先のフォルダを作成します 受信トレイで右クリックをし フォルダの作成 をクリックします 名前に任意の名前を入力し OK ボタンをクリックします 件名に挿入設定がある場合 件名に挿入設定がある場合 W

デジタル表現論・第6回

テキスト処理第 2 回 田中哲産業技術総合研究所情報技術研究部門 akira/textprocess/

ClearCase - SD4_JP

スライド タイトルなし

Lesson

Prog2_10th

memo

レポートでのデータのフィルタ

このルールをそのまま正規表現として書くと 下記のようになります ^A[0-9]{2}00[0-9]{3}([0-9]{2})?$ ちょっと難しく見えるかもしれませんが 下記のような対応になっています 最初 固定 年度 固定 通番 ( 枝番 ) 最後 ルール "A" 数字 2 桁 0 を 2 桁 数字

このうち ツールバーが表示されていないときは メニューバーから [ 表示 (V)] [ ツールバー (T)] の [ 標準のボタン (S)] [ アドレスバー (A)] と [ ツールバーを固定する (B)] をクリックしてチェックを付けておくとよい また ツールバーはユーザ ( 利用者 ) が変更

※ ポイント ※

1. ユーザー管理 サーバーや特定のサービスにアクセスするためには サーバー上にユーザーアカウントが設定されている必要があります また ユーザーごとに利用環境などを個別に設定することができます また ユーザーの管理の簡便化を図るためにグループが設定できます グループを設定することで ユーザーごとの設

実験 5 CGI プログラミング 1 目的 動的にWebページを作成する手法の一つであるCGIについてプログラミングを通じて基本的な仕組みを学ぶ 2 実験 実験 1 Webサーバの設定確認と起動 (1)/etc/httpd/conf にある httpd.conf ファイルの cgi-bin に関する

"GIFT" フォーマットのインポート

Microsoft Word - Javacc.docx

目次 1. はじめに... 3 本システムご利用の前提について... 3 アカウント申請について... 3 本システムの機能について 基本の操作方法... 4 本システムにログイン / ログアウトする... 4 ファイルをダウンロードする 機能ごとの操作方法... 6

Transcription:

Unix によるテキストファイル処理 2015/07/30

作業場所 以降の作業は 以下のディレクトリで行います ~/unix15/text/ cd コマンドを用いてディレクトリを移動し pwd コマンドを利用して カレントディレクトリが上記になっていることを確認してください

実習で使用するデータ 講習で使用するデータは以下のフォルダ内 ファイルがあることを確認してください ~/unix15/text/ ( 確認するためのコマンド ) $ ls unix15/text/ 主なファイルの内容 batter.txt 2014 年セリーグ打撃成績上位 5 名 ecoli.sam マッピング結果ファイル ecoli.gtf アノテーションテーブルファイル ecoli.htseq アノテーションテーブルを使用して得られたリード数

コマンド復習 wc [ ファイル名 ] ファイルの行数 単語数 文字数を出力する head [- 行数 ] [ ファイル名 ] ファイルの先頭から指定した行数 ( 指定しないと 10 行 ) を出力する tail [- 行数 ] [ ファイル名 ] ファイルの最後から指定した行数 ( 指定しないと 10 行 ) を出力する less ファイル名 ファイルの内容を閲覧する

本講で扱うテキスト処理コマンド grep 正規表現パターンの検索 sed 文字列置換等によるファイルの変換 sort ファイルのソート awk 様々なテキストファイル処理

正規表現による文字列検索 (grep) grep ' パターン ' [ ファイル名...] ファイル中でパターンを含む行を出力する 例 )grep 'GO' 1433T_HUMAN.sprot 1433B_HUMAN.sprot から GO を含む行を検索する DR Geneves:gator; P27348; -. DR GermOnline; ENSG00000134308; Homo sapiens. DR GO; GO:0005813; C:centrosome; IDA:HPA. DR GO; GO:0005634; C:nucleus; IDA:HPA. DR Bgee; P27348; -.. DR GO; GO:0005813; C:centrosome; IDA:HPA. DR GO; GO:0005634; C:nucleus; IDA:HPA.

正規表現による文字列検索 (grep) grep ' パターン ' [ ファイル名...] ファイル中でパターンを含む行を出力する例 )grep 'GO' 1433T_HUMAN.sprot 1433B_HUMAN.sprot から GO を含む行を検索する 例 )grep '^FT' 1433T_HUMAN.sprot 1433B_HUMAN.sprot から FT で始まる行を検索する grep -v パターンを含まない行を出力する grep -i 大文字小文字を区別しない grep -w パターンを単語としてマッチ ファイル名は複数指定可能 ファイル名を省略すると 標準入力から文字列を読み込んでパターンを検索する

正規表現 grep は 正規表現 によってパターンを指定し 照合したい文字列集合を規定する 通常の文字列はそのまま表現される 例 )File1 (File1 にマッチ ) 特殊な意味を持つ文字 ( メタキャラクタ ) によって規則を表現 例 )[ ] は文字集合を規定する File[1-3] (File1, File2, File3 のいずれにもマッチ ) \ によってメタキャラクタの特殊な意味を打ち消せる 例 )\[abc\] ([abc] という文字列にマッチ ) 注意 ) 正規表現にはシェルのメタキャラクタが含まれるので そのままコマンドラインで指定すると思わぬエラーになることが多い そこで パターンは ' ' で囲むようにする

正規表現 ( 一部 ). ( ドット ) 任意の 1 文字 例 )a.c abc, adc など a と c の間に任意の 1 文字を含む文字列にマッチ []( 角形括弧 ) 文字の集合 例 )[ad3@] a, d, 3, @ のいずれにもマッチ 例 )[a-d] a, b, c, d のいずれにもマッチ 例 )[^abd] a, b, d 以外のいずれにもマッチ ^ 行の先頭 $ 行の終端 例 )^ID 行の先頭が ID である行とマッチ * 0 回以上の繰り返し 例 )a.*m a と m の間に任意の文字列を含む (am, arm, alarm,am am など )

演習 (grep) 以下のコマンドは何を行うものか? grep '^@' ecoli.sam 実際にコマンドを打ち込み 結果を確認せよ

演習 (grep) ecoli.sam ファイルから grep (egrep) コマンドを用いてヘッダ行 ( 行頭に @ を含む ) を表示せよ 解答例 grep '^@' ecoli.sam

文字の置換など (sed) sed 's/ 置換対象パターン / 置換文字列 /g' [ ファイル名 ] ファイル中の 指定した正規表現パターンに合致するすべての文字列を 指定した置換文字列で置き換える 置換文字列が空の場合は文字列の削除になる 例 ) sed s/abc/xyz/g file file 中の文字列 abc をすべて xyz に置き換える abcdef abcabcde bcdef a bcdef xyzdef xyzxyzde bcdef a bcdef

文字の置換など (sed) sed 's/ 置換対象パターン / 置換文字列 /g' [ ファイル名 ] ファイル中の 指定した正規表現パターンに合致するすべての文字列を 指定した置換文字列で置き換える 置換文字列が空の場合は文字列の削除になる 例 ) sed 's/abc/xyz/g' file file 中の文字列 abc をすべて xyz に置き換える 最後の g をつけない場合は 各行で最初にマッチしたパターンのみが置換される 例 ) sed 's/:/ /' file 各行で最初に出現した : をスペースに置き換える sed コマンドにも一般にシェルのメタキャラクタが含まれうるので パターンの指定は常に ' ' で囲むようにする

文字の置換など (sed) 通常 wc を使ってファイルの行数を出すと ファイル名まで出力されてしまう 行数だけ取り出してみよう $ wc l ecoli.gtf sed 's/.*//g' wc の出力結果から スペース以降の文字を削除 (= 何もないものに置換 ) している $ wc l ecoli.gtf 演習 ) この 2 つのコマンドをそれぞれ実行し 違いを見よ

行の並べかえ (sort) sort [ オプション ] [ ファイル名 ] ファイルを行単位で並べかえる -k FLD1,FLD2 ソートのキーを スペース文字で区切られたフィールド単位で指定できる (FLD1 開始フィールド FLD2 終了フィールド ) -k 2,2 第 2フィールドをキーとしてソート Murton T.338 14 84 Kikuchi C.325 11 58 Yamada S.324 29 89 Ooshima D.318 2 28 Luna D.317 17 73 Kikuchi C.325 11 58 Luna D.317 17 73 Ooshima D.318 2 28 Yamada S.324 29 89 Murton T.338 14 84 -k 2,2 k 3,3nr 第 2 フィールドを 1 番目のキーとし 第 3 フィールドを 2 番目のキーとして 数値として (n) 逆順 ( 大きい順 ) で (r) ソート Murton T.338 14 84 Kikuchi C.325 11 58 Yamada S.324 29 89 Ooshima D.318 2 28 Luna D.317 17 73 Kikuchi C.325 11 58 Ooshima D.318 2 28 Luna D.317 17 73 Yamada S.324 29 89 Murton T.338 14 84

演習 (sort) ecoli.htseq を使い リード数をカウントされた回数が多いものから 20 個を表示せよ また 少ないものから 20 個を表示するにはどうすればよいか? 解答例 sort k 2,2nr ecoli.htseq head -20 少ないものから 20 個の場合 sort k 2,2n ecoli.htseq head -20

テキストファイルの処理 (awk) awk ' コマンド ' ファイル テキストファイルを処理する多機能なコマンド コマンドの一般形式はパターン { アクション } パターンに指定した条件に合致した行について アクションで指定した操作を行う パターンを省略するとすべての行が対象になる タブ区切りテキストなどテーブル形式のファイルでは $1, $2, によって各フィールド ( カラム ) の値を参照できる

テーブルデータの処理 (awk) テーブルカラムの抽出 awk '{print $3,$4,$5}' datafile 3,4,5 カラム目を出力 パターンが指定されていないのですべての行が出力される ecoli.ge... chr eschcoli_k12_refseq stop_codon 253 255... chr eschcoli_k12_refseq exon 190 255... chr eschcoli_k12_refseq start_codon 337 339... chr eschcoli_k12_refseq CDS 337 2796... # awk {print $3,$4,$5} ecoli.gtf stop_codon 253 255 exon 190 255 start_codon 337 339 CDS 337 2796

テーブルデータの処理 (awk) 条件を指定したフィルタリング awk $4<200 {print}' datafile 4 カラム目が 200 未満の行を出力 出力フィールドが指定されていないので行全体を出力 ecoli.ge... chr eschcoli_k12_refseq stop_codon 253 255... chr eschcoli_k12_refseq exon 190 255... chr eschcoli_k12_refseq start_codon 337 339... chr eschcoli_k12_refseq CDS 337 2796... # awk $4<200 {print}' ecoli.gtf chr eschcoli_k12_refseq start_codon 190 192 chr eschcoli_k12_refseq CDS 190 252... chr eschcoli_k12_refseq exon 190 255...

テーブルデータの処理 (awk) テーブルカラムの抽出 awk '{print $1,$2,$5}' datafile 1,2,5 カラム目を出力 パターンが指定されていないのですべての行が出力される 条件を指定したフィルタリング awk '$3<200 {print}' datafile 3 カラム目が 200 未満の行を出力 出力フィールドが指定されていないので行全体を出力 複数の条件の指定 awk '$2~/target/ && $3<200{print}' datafile 2 カラム目に target を含み 3 カラム目が 200 以下の行を出力 変数 ~/ パターン / は正規表現の照合 awk コマンドにも一般にシェルのメタキャラクタが含まれうるので 常に ' ' で囲むようにすると良い

算術計算 (awk) 合計値の出力 awk '{sum=sum+$2} END{print sum}' ecoli.htseq b0001 11 b0002 117 b0003 33 b0004 44 b0005 3 b0006 14 sum {sum+=$2} 変数 sum に各行の 2 カラム目の値を加える 11

算術計算 (awk) 合計値の出力 awk '{sum=sum+$2} END{print sum}' ecoli.htseq b0001 11 b0002 117 b0003 33 b0004 44 b0005 3 b0006 14 sum ( 前の値 :11) + 117 = 134 {sum+=$2} 変数 sum に各行の 2 カラム目の値を加える

算術計算 (awk) 合計値の出力 awk '{sum=sum+$2} END{print sum}' ecoli.htseq b0001 11 b0002 117 b0003 33 b0004 44 b0005 3 b0006 14 sum ( 前の値 :134) + 33 = 167 {sum+=$2} 変数 sum に各行の 2 カラム目の値を加える

算術計算 (awk) 合計値の出力 awk '{sum=sum+$2} END{print sum}' ecoli.htseq b0001 11 b0002 117 b0003 33 b0004 44 b0005 3 b0006 14 [EOF] END{print sum} 最終行で sum の値を出力する sum 330118 出力

算術計算 (awk) 合計値の出力 awk '{sum=sum+$2} END{print sum}' ecoli.htseq 2 カラム目の合計値を出力 プログラムは 2 つのブロックからなる {sum=sum+$2} パターン部がないのですべての行が対象となる 変数 sum に各行の 2 カラム目の値を加える sum+=x は sum=sum+x と同じ END{print sum} パターン END は最終行のみにマッチ 最終行で sum の値を出力する 参考 ) パターン BEGIN は先頭行のみにマッチする これを用いて変数の初期化などができる 例 ) BEGIN{sum=0} {sum+=$2} END{print sum} 最初に変数 sum を 0 に初期化する これはデフォルトの動作として省略できるため 上記のプログラムと同じ結果になる

演習 (awk) awk コマンドを用いて ecoli.htseq の 2 カラム目 ( カウント数 ) の平均値を出力せよ ヒント : 行数を数える必要がある 変数 ln を使って行数を数えるにはどうすればよいか? カラムの和を変数 sum を用いて表せば 最後に sum を行数で割り算することで平均が出せる 割り算は a/b で計算できる

演習 (awk) awk コマンドを用いて ecoli.htseq の 2 カラム目 ( カウント数 ) の平均値を出力せよ 解答例 1) awk '{sum=sum+$2; ln=ln+1} END{print sum/ln}' ecoli.htseq 解答例 2) awk '{sum+=$2; ln++} END{print sum/ln}' ecoli.htseq