「UNIX/テキスト抽出」の編集履歴(バックアップ)一覧はこちら
「UNIX/テキスト抽出」(2011/03/08 (火) 23:12:52) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
&topicpath()
#contents
----
*テキスト抽出
**grep
テキストファイルから条件に一致する行を抜き出す
***実行オプション
|BGCOLOR(#0AA):CENTER:オプション|BGCOLOR(#0AA):CENTER:動作|
| -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
***実行オプション
|BGCOLOR(#0AA):CENTER:オプション|BGCOLOR(#0AA):CENTER:動作|
| -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
----
&topicpath()
----
&topicpath()
#contents
----
*テキスト抽出
**grep
テキストファイルから条件に一致する行を抜き出す
***実行オプション
|BGCOLOR(#0AA):CENTER:オプション|BGCOLOR(#0AA):CENTER:動作|
| -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
***実行オプション
|BGCOLOR(#0AA):CENTER:オプション|BGCOLOR(#0AA):CENTER:動作|
| -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
----
&topicpath()
----
表示オプション
横に並べて表示:
変化行の前後のみ表示: