linuxでsed,awkコマンド学習

1122 ワード

一.sed
1.個人的な理解:sedはファイルを直接操作するために使用することができ、例えばファイルのある行を直接表示し、ファイルを編集する(公式解釈:1つ以上のファイルを自動的に編集し、ファイルに対する繰り返し操作を簡略化し、変換プログラムを書くなど)
2.コマンド形式:
sed [    ]      [    ]

パラメータセクションの共通項目:-iファイルを直接編集すると、ファイルが変更されます.-nは画面に直接出力する(一般的にコマンド部のpと併用する);  
コマンド部共通項:a(次の行に追加)i(前の行に追加)d(削除)s(キーワードに対する置換)c(行に対する置換)p(出力)
テクニック:①コマンド部分の前に行を加えて、例えばx行目からy行目までをx、ya---->x行からy行までのすべての行の前に追加する意味を表す
②$は最後の行を表し、5行目から最後の行まで表現したい場合は5,$と書くことができます.
③テキスト間の検索は、s/hello/hi/gのように直接一致し、テキスト内のすべてのhelloをhiに変換することを示す(gはグローバルを表し、sは置換を表す)
④コマンド部分の「」と「」の違いに注意し、「」には変数を置くことができる.
二.awk
1.個人の理解:主に統計テキストファイルに用いられ、毎回1行を処理する
2.コマンド形式:
     awk [options]  'command'   files     : $0( ) $1( )  FILENAME(ファイル名)FS(ファイル区切り記号)RS(ライン分割記号)NF(フィールド数)NR(数行目)
注意:1は{}で優雅な書き込み関数式、命令実行の位置に条件または正規式を追加できます.
例:awk'NR==2{print$0}'filename-->2行目の印刷
②awkはデフォルトでフィールドをスペースで分割します.他の記号を使用する場合は(-F':')を使用して分割記号を変更できます.
                  ③ awk 'BEGIN{count = 0;} {if($NR<6){print }}'