Linuxテキスト処理三剣客

4871 ワード

1. grep
テキストフィルタ(モード:pattern)ツール、grep、egrep、fgrep(正規表現検索はサポートされていません)grep [OPTIONS] PATTERN [FILE...]
  • --color=auto一致するテキストに対するシェーディング表示
  • -vpatternに一致しない行を表示
  • -i文字の大文字と小文字を無視
  • -n一致する行番号を表示
  • -c統計一致行数
  • -o一致する文字列のみを表示
  • -qサイレントモード、何も出力しない
  • -A #after,後#行
  • -B #before,前の行
  • -C #context,前後各#行
  • -e複数のオプション間の論理or関係を実現grep –e ‘cat ’ -e ‘dog’ file
  • -w単語全体に一致
  • -E使用ERE,相当于egrep
  • -Fはfgrepに相当し、正規表現
  • はサポートされていません.
    2. sed
    sedは、1行のコンテンツを一度に処理するストリームエディタです.処理時には、現在処理する行を一時バッファに格納し、「モード空間」と呼ぶ(pattern space)は、次にsedコマンドでバッファ内の内容を処理し、処理が完了するとバッファの内容をスクリーンに送る.そして下りを読み込んで次のループを実行する.「D」のような特殊なコマンドを使用しないと、2つのループの間にモードスペースはクリアされるが、予約スペースはクリアされない.これはファイルの最後まで繰り返される.ファイル内容リダイレクトストレージ出力を使用しない限り、変更はありません.sed [option]... 'script' inputfile
  • オプション
  • -nモード空間コンテンツを画面に出力しない、すなわち自動印刷しない
  • -eマルチポイント編集
  • -f /PATH/SCRIPT_FILE:指定ファイルから編集スクリプトを読み込む
  • -r拡張正規表現の使用をサポート
  • -i.bakファイルをバックアップし、元の場所で編集
  • scriptアドレス境界
  • アドレスを与えない:全文を処理する
  • シングルアドレス:#:指定された行,$:最後の行/pattern/:ここでモードに一致する各行
  • アドレス範囲:#,##,+#/pat1/,/pat2/`,/pat 1/
  • ~:ステップ1~2奇数行2~2偶数行
  • 編集コマンド:
  • dパターン空間が一致する行を削除し、すぐに次のループ
  • を有効にします.
  • p現在のモード空間の内容を印刷し、デフォルト出力に追加した後
  • a [\]text1指定された行の後ろにテキストを追加し、複数行追加
  • の使用をサポート
  • i [\]text行の前にテキストを挿入
  • c [\]text置換動作単行または複数行テキスト
  • w /path/somefile保存モード一致の行から指定ファイル
  • r /path/somefile指定されたファイルのテキストをパターン空間で一致する行に読み出した後
  • =は、モード空間における行印刷行番号
  • である
  • !モード空間におけるマッチング行取逆処理
  • s///:置換を検索し、他の区切り文字を使用することをサポートします.s@@@,s####置換タグ:
  • g行内グローバル置換
  • p置換に成功した行を表示
  • w /PATH/TO/SOMEFILE置換に成功した行をファイルに保存


  • 3. awk
    レポートジェネレータ、テキスト出力のフォーマット、複数のバージョン:New awk(nawk)、GNU awk(gawk)awk [options] 'program' file…
  • program:pattern{action statements;..}
  • pattern部は、動作文がいつイベントBEGINをトリガおよびトリガするかを決定し、END
  • action statementsデータを処理し{}内に置いてprint,printf
  • を示す
  • オプション:-F入力時に使用するフィールド区切り記号を示す-v var=valueカスタム変数
  • 分割子、ドメイン、レコードawkの実行時に、区切り子で区切られたフィールド(ドメイン)タグ1,1,2.nをドメインID、nをドメインID、0をすべてのドメインと呼びます.actionを省略すると、print$0の操作がデフォルトで実行されます.
  • 変数FS:フィールド区切り記号を入力します.OFS:フィールド区切り記号を出力します.RS:記録区切り記号を入力する.ORS:レコード区切り記号を出力する;NF:フィールド数;NR:記録番号;NFR:各ファイルはそれぞれカウントし、記録番号.FILENAME:現在のファイル名;ARGC:コマンドラインのパラメータ;ARGV:配列で、コマンドラインによって与えられた各パラメータが保存されます.
    注意:以上は内蔵変数で、参照時に前に$を追加する必要はありません.新しい変数を作成するたびに-vを追加する必要があります.変数名との間にスペースがあるかどうかは構いません.変数は参照後に宣言できますが、その行の出力は空白行を出力します.
  • printfコマンドprintf “FORMAT” , item1, item2, ...は自動的に改行されません.FORMATでは、後のitemごとにフォーマットを指定する必要があります.
  • フォーマット
  • 書式
    item表現形式
    %c
    文字を表示するASCIIコード
    %d, %i
    10進数の表示
    %e, %E
    科学カウント法の数値を表示
    %f
    浮動小数点数として表示
    %g, %G
    数値を科学的カウントまたは浮動小数点で表示
    %s
    文字列の表示
    %u
    符号なし整数
    %%
    %自身を表示
  • 修飾子
  • 書式
    item表現形式
    #[.#]
    最初の数値は表示の幅を制御します.2番目の#は小数点以下の精度を表し、%3.1 f
    -
    左揃え(デフォルト右揃え)%-15 s
    +
    数値の正負記号%+dを表示
  • オペレータ
  • 算術オペレータ:x+y,x-y,x*y,x/y,x^y,x%y-x:負数+xに変換:数値
  • に変換
  • 比較オペレータ:=,!=,>,>=,
  • パターンマッチング:~:左と右のマッチングが含まれているかどうか!~:一致しないかどうか
  • 論理オペレータ:&&、または、非!
  • 関数呼び出し:function_name(argu1, argu2, ...)
  • 条件式(三目式):selector?if-true-expression:if-false-expression
  • PATTERN:pattern条件により一致する行をフィルタリングし、処理する
  • 指定されていない場合:空のモードは、各行
  • に一致します.
  • /regular expression/:パターンマッチング可能な行のみを処理するには、/で囲む必要がある
  • relational expression:関係式、結果は「真」で処理されます
  • line ranges:行範囲startline,endline:/pat1/,/pat2/直接数値フォーマットを与えることはサポートされていません
  • BEGIN/ENDモード
  • awk制御文
  • { statements;… }組合せ文
  • if(condition) {statements;…}
  • if(condition) {statements;…} else {statements;…}
  • while(conditon) {statments;…}
  • do {statements;…} while(condition)
  • for(expr1;expr2;expr3) {statements;…}
  • break
  • continue
  • delete array[index]
  • delete array
  • exit

  • awk [-F|-v] ' {XXX;XXX;printf “”,XXX,XXX}'