トップ 一覧 ping 検索 ヘルプ RSS ログイン

Linux テキスト処理の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!Linux テキスト処理
[Linux][Linux コマンド]
{{amazon 487311070X}}
!!!フィルタを使ってテキストストリームを処理
*Linuxにはフィルタコマンドが多数用意されていて、テキストを効率的に加工できる
*複数のコマンドを結合してテキストストリームを作成すると、コマンドのパイプラインを形成し、その各段階でテキストに変更を加えることができる
!!cut
*指定の列またはフィールドを抜き出して表示
!!expand
*タブを空白文字に変換
!!fmt
*テキストを指定の長さに政経
!!head
*ファイルの先頭数行を表示する
!!join
*file1で指定したファイルとfile2で指定したファイルを1行ずつ読み込み、結合フィールドが共通な行を結合する
 join [options] file1 file2
::file1
 1 one
 2 twe
 3 three
::file2
 1 11
 2 22
 3 33
::結果
 $ join -j 2 file1 file2
 1 one 11
 2 twe 22
 3 three 33
!!nl
*ファイルの内容に行番号を付加して標準出力に書き込む
!!od
*8進数またはその他の形式でファイルをダンプする
!!paste
*ファイルを読み込み、互いに一致する行をタブで区切って出力する
!!pr
*ファイルを読み込み、ヘッダを付け、ページ単位の区切り処理や段落の処理をして
標準出力する
!!split
*ファイルを指定の行数で分割する
!!tac
*ファイルの行を逆順にして標準出力する
!!tail
*ファイルの末尾の指定行を出力する
!!tr
*string1で指定した文字をstring2で指定した対応する文字に変換する
::例
*小文字をすべて大文字に変換
 $ cat file1 | tr a-z A-Z
!!wc
*ファイルの文字数、単語数、行数をカウントする
!!xargs
*commandで指定したコマンドを実行する initial-argument で引数を指定した、標準入力からの追加引数を指定することも可能
 xargs [option] [command] [initial-argument]
::例
*通常ファイル(-type f)をルートディレクトリを起点に再帰的に検索
*xargs は-n 1 オプションが指定されているので見つかったファイル毎に一度 grep を実行する
 $ find / -type f | xargs -n 1 grep linux
!!!ストリームエディタ (sed)
*大部分のUnixシステムに搭載されている sed (ストリームエディタ)も重要なフィルタコマンド
*ストリームエディタは、通常標準入力から流れてくるテキストのストリーミングを、フィルタ処理によって編集して標準出力に渡す
*多様な機能を持つプログラミング可能なユーティリティ

 sed [options] 'command1' file
 sed [options] -e 'command1' [-e 'command2' ...] [file]
 sed [options] -f script [file]
!!コマンド
!d
*行を削除
::例
*3行めから5行目までを削除
 $ sed '3,5d' sample.txt
*#で始まる行を削除
 $ sed '/^#d' sample.txt
!s
*置換を行う
 s/pattern.replacement/[flags]
::flags
,flag,内容
,g,すべての出現箇所を置換
,n,n番目の出現箇所を置換
,p,置換が正常終了したら、置換行を出力
,w file名,置換が正常終了したら、行をファイルに出力
,y,文字を変換
::例
*aが出現したら、すべてをxに、同様にbはyに、cはzに変換する
 $ sed 'y/abc/xyz/' sample.txt
*空行(改行のみの行)の代わりに@を書き込む
 $ sed 's/^$/@/' sample.txt
*二重引用符を削除
 $ sed 's/"//g' sample.txt
::スクリプトファイルを使用する例
*1行目から10行目までを編集対象とし、3行目と4行目の二重引用符を(と)に置き換える
*sedcmds
 1,10 {
 $/"/(/3
 $/"/)/4
 }
*実行
 $ sed -f sedcmds sample.txt
!!テキストとページング
!less
::よく使われるコマンド
,コマンド,説明
,Space,1画面下へスクロール
,d,半画面下へスクロール
,Enter,1行下へスクロール
,b,1画面上へスクロール
,u,半画面上へスクロール
,y,1行上へスクロール
,g,先頭へ移動
,[nn]g,指定行nnへ移動
,[nn]j,指定行nnジャンプ
,/pattern,patternに一致する文字を下へ検索
,?pattern,patternに一致する文字を上へ検索
::オプション
,オプション,内容
,-N,行番号表示
,-n,行番号非表示