【鳥兄のlinuxプライベートルーム料理-学習ノート】ファイルのフォーマットと関連処理


ファイルのフォーマットと関連処理


印刷の書式設定:printf

[root@www ~]# printf ' '  

オプションとパラメータ:フォーマットに関するいくつかの特殊なスタイル:a警告音声出力b後退キー(backspace)fクリアスクリーン(form feed)新しい行rすなわちEnterキーt水平の[tab]キーv垂直な[tab]キーxNN NNは2桁の数字を出力し、数字をバイトに変換することができる.Cプログラム言語については、一般的な変数フォーマット%nsのnは数字であり、sはstring、すなわち何バイトを表すか.%Niそのnは数字で、iはintegerを代表して、つまりどれだけの整数の数字です;N.nfのnとNはすべて数字で、fはfloating(浮動小数点)を代表して、もし小さい数字の数があれば、私は全部で10桁の数を要すると仮定して、しかし小数点は2桁あって、つまり%10.2 fです.

awk:使いやすいデータ処理ツール


sedが1行全体に作用する処理に比べてawkは1行に数個の「欄位」に分けて処理する傾向があり、デフォルトの「欄位の区切り記号は「空白キー」または「[tab]キー」である.従ってawkは小型のデータデータ処理にかなり適している.awkは通常、次のように動作します.
[root@www ~]# awk ' 1{ 1}  2{ 2} ...' filename

例:
[root@www ~]# last -n 5 <== 

入手:root pts/1 192.168.1.1100 Tue Feb 10 11:21 still logged in root pts/1 192.168.1100 Tue Feb 10 00:46-02:28(01:41)root pts/1 192.168.1100 Mon Feb 9 11:41-18:30(06:48)dmtsai pts/1 192.168.1100 Mon Feb 9 11:41-11:41(00:00)root tty 1 Fri Sep 5 14:09-14:10(00:01)
使用
last -n 5 | awk '{print $1 "\t" $3}'

得られた:root 192.168.1.1100 root 192.168.1.1100 root 192.168.1.1100 dmtsai 192.168.1.1100 root Fri
さっきの5行のうちawk全体の処理の流れは:
 ,  $0, $1, $2....  ;
  " "  ,  " ";
 ;
 『 』 ,  1~3  , 。

$0は『1列のデータ』を表します.
awkは『行為1回で処理する単位』であり、『欄位で最小の処理単位』である.
awkの後続のすべての動作は単一引用符『’』で囲まれています.単一引用符と二重引用符はペアでなければならないので、awkのフォーマットの内容をprintで印刷したい場合は、非変数の文字部分を覚えておいてください.前の節printfで述べたフォーマットに含まれている場合は、二重引用符で定義する必要があります.単一引用符はawkのコマンド固定用法であるからです.
awk内蔵変数
変数名
代表的意義.
NF
1行当たり($0)のカラム数の合計
NR
現在awkで処理されているのは『数行目』のデータです
FS
現在の区切りバイト、デフォルトは空白キー
注意事項:
awkのコマンド間隔:すべてのawkの動作、すなわち{}内の動作であり、複数のコマンドアシストが必要な場合はセミコロン';間隔、または各コマンドを[Enter]ボタンで直接離します.
論理演算では、『等于』の場合、必ず2つの等号『==』!
出力をフォーマットする場合、printfのフォーマット構成には、必ず追加してから支店を行うことができます!
bash shellの変数とは異なりawkでは$記号を付けずに変数を直接使用できます.

ファイル照合ツール


diff:
diffは2つのファイルの違いを比較するために使用され、動作単位で比較されます!一般的にASCII純文字ファイルの対比に用いられる.動作比対の単位であるため、diffは通常、同じファイル(またはソフトウェア)の新旧バージョンの違いで使用されます.
cmp:
cmpは主に2つのファイルを比較しており、彼は主に『ビットグループ』単位を利用して比較しているので、もちろんbinary fileを比較することもできます.
patch:
2つのファイルの違いをdiffで比較し,さらにこの機能を利用してパッチファイル(patch file)を作成することができる.

ファイル印刷準備:pr