sakawork @ ウィキ

メニュー

▼プログラミング言語関連
▼プロトコル関連
▼Web関連



ページ編集支援





リンク





UNIX > テキスト抽出


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。


テキスト抽出

grep

テキストファイルから条件に一致する行を抜き出す

実行オプション

オプション 動作
-v 条件に一致しない行を選ぶ
-c 含まれる行数をカウント
-h 複数ファイルをgrepした場合にファイル名を表示しない
-i 大文字小文字を区別しない
-n 行番号出力
などをよく使った
egrepは、"{}"を用いた繰り返しや"|"を用いた複数条件指定ができる

実行例

$ cat Souri.txt
Koizumi Junichiro, Jimin
Abe Shinzo,Jimin
Fukuda Yasuo, Jimin
Aso Taro,Jimin
Hatoyama Yukio, Minsyu
Kan Naoto, Minsyu
 Minsyuが含まれる行数を数える(-n)
$ grep -n Minsyu Souri.txt
2
 "Jimin"が含まれる行をファイルと画面に出力
$ grep Jimin Souri.txt | tee Jimin_Souri.txt
Koizumi Junichiro, Jimin
Abe Shinzo,Jimin
Fukuda Yasuo, Jimin
Aso Taro,Jimin
 "Jimin"が含まれない(-v)行をファイルと画面に出力
$ grep -v Jimin Souri.txt |tee Minsyu_Souri.txt
Hatoyama Yukio, Minsyu
Kan Naoto, Minsyu
 *_Souri.txtから名前のイニシャルがYの行を 行番号付(-n) で抜き出す
 任意の文字列(.*)+" Y"+任意の文字列(.*)+','
$ grep -n '.* Y.*,' *_Souri.txt
Jimin_Souri.txt:3:Fukuda Yasuo, Jimin
Minsyu_Souri.txt:1:Hatoyama Yukio, Minsyu
 大文字小文字問わず(-i) アルファベット "t" が含まれる行を抜き出す
 ファイル名は出力しない(-h)
$ grep -hi 't' *_Souri.txt
Aso Taro,Jimin
Hatoyama Yukio, Minsyu
Kan Naoto, Minsyu
 大文字小文字問わずアルファベット3文字で始まる行を抜き出す
$ egrep -i '^[a-z]{3} ' Souri.txt
Abe Shinzo,Jimin
Aso Taro,Jimin
Kan Naoto, Minsyu
 行頭(^)が"K"から始まるorMinsyuが含まれる行を抜き出す
$ egrep '^K|Minsyu' Souri.txt
Koizumi Junichiro, Jimin
Hatoyama Yukio, Minsyu
Kan Naoto, Minsyu

sort

実行オプション

オプション 動作
-b 行頭の空白文字(スペース,タブ)を無視
-c すでにソート済みかチェック
-f 大文字小文字の区別なし
-n 数字と見なしてソート
-r 逆順に表示
-u 同じ行を1度しか表示しない
※自分は-uを知らずuniqを使っていた

uniq

実行オプション

-c 連続して同じものがある場合カウント
-d 連続する行のみ表示
-u 連続して同じ行があったら表示しない

実行例

$ cat a.txt
pppp
xxxx
yyyy
zzzz
pppp
pppp
xxxx
$ sort a.txt | uniq -c
3 pppp
2 xxxx
1 yyyy
1 zzzz
$ uniq -d a.txt
pppp
$ sort a.txt | uniq -d
pppp
xxxx



更新履歴

取得中です。


タグクラウド


アクセス

本日のアクセス
-
昨日のアクセス
-