テキスト処理--gawkの概要をシェルとのsed

gawkのプログラム

プログラムの元のUnix awkプログラムのGNU版のときのgawk。gawkのプログラミング言語では、次のことを行うことができます。

  • データを保持する変数を定義
  • そして、データ列を処理するために算術演算子を使用して
  • プロセスデータの処理ロジックを増加させるために(例えば、ステートメントとループIF-THENのような)構造化プログラミングの概念を使用して。
  • 再配置またはフォーマットするために、データファイル内のデータ要素を抽出することにより、フォーマットされたレポートの生成
    1.gawkコマンドの形式
    として以下のある基本的な形式のgawkの手順を:
    gawkのオプションプログラムファイル
    gawkのオプションは以下のとおりである:
    |オプション|説明|
    | - | - |
    | -F FS |分割フィールド区切りのデータフィールドに指定された行|
    | -fファイル|指定したファイルから読み込ん|
    | -v VAR =値|既定のプログラムはgawkで定義された変数値|
    | N -MF | |で処理されるデータファイルのフィールドの最大数を指定
    |指定データファイル内のデータの最大行数を| N -mr |
    gawkの互換モードまたは警告レベルを指定する| -Wキーワード| |

2.可変データフィールド
、変数以下のgawkはそのデータフィールドに割り当てられますデフォルトでは、テキストの行で見つかりました:

  • $ 0がテキストの行全体を表し、
  • $ 1は、データフィールド内のテキストの最初の行を表し、
  • $ 2のテキストデータフィールドの2行目を表し、
  • $ n番目のデータ・フィールドを表すNテキストの行
    次の例では、データフィールドの値をテキストファイルからの読み出しを表し、そしてディスプレイ
[root@ommleft zd]# cat data2.txt
One line of test text.
Two line of test text.
Three line of test text.
[root@ommleft zd]# gawk '{print $1}' data2.txt
One
Two
Three

ファイルを読むためにフィールドセパレータを使用して、オプションを指定するために使用することができる-F

[root@ommleft zd]# gawk -F: '{print $1}' /etc/passwd
root
bin
daemon
adm
lp
sync
shutdown

3.複数のコマンドスクリプトから
複数のコマンドを使用して、コマンドライン上のスクリプトに、セミコロンがコマンドの間とすることができる置くことができます。

[root@ommleft zd]# echo "My name is Rich"|gawk '{$4="Christine";print $0}'
My name is Christine

4.ファイルからプログラム読ま
gawkのエディタがファイルに格納されたプログラムを可能にし、コマンドラインで参照します。

[root@ommleft zd]# more script.gawk
{print $1 "'s home directory is " $6}
[root@ommleft zd]# gawk -F: -f script.gawk /etc/passwd
root's home directory is /root
bin's home directory is /bin
daemon's home directory is /sbin
adm's home directory is /var/adm
lp's home directory is /var/spool/lpd

5.gawk BEGIN
スクリプトでキーワードgawkの力をBEGINデータを読み込む前に、キーワード開始した後のgawkを指定しました。

[root@ommleft zd]# gawk 'BEGIN{print "Hello World!"}'
Hello World!

読むテキストと表示

[root@ommleft zd]# cat data3.txt
Line 1
Line 2
Line 3
root@ommleft zd]# gawk 'BEGIN {print "The data3 file contents:"}{print $0}' data3.txt
The data3 file contents:
Line 1
Line 2
Line 3

6.gawkのEND
類似したキーワードがENDキーワードを使用すると、スクリプトを指定することができ、BEGIN、gawkがデータを読んだ後に実行されます。

[root@ommleft zd]# gawk 'BEGIN{print "The data3 file contents:"}
{print $0}
END{print "End of File"}' data3.txt
The data3 file contents:
Line 1
Line 2
Line 3
End of File

sedの編集

:SEDエディタは、ストリームエディタ(ストリームエディタ)、sedのエディタを行う次の操作と呼ぶ
1)入力から読み出されたデータの最初の行。
2)提供のエディタに応じたコマンドデータと一致する
データストリームを変更するためのコマンドに応じて)3は
STDOUTに新しいデータ4を出力する)
sedのコマンドの形式は次のとおりです。
sedのオプションスクリプトファイル
sedコマンドのオプションとして、次のされています
|オプション|説明|
| -eコマンドが|既存のコマンドに指定されたコマンドを追加します|
| -fファイル|既存のコマンドにコマンドで指定されたファイルを追加|
| -n |なしコマンド出力、印刷コマンド完了出力を使用|

コマンドラインエディタコマンドの定義では1

[root@ommleft zd]# echo "This is a test"|sed 's/test/trial/' 
This is a trial

また、STDOUT出力ファイルのデータを処理することができるが、データファイルを変更しません。

[root@ommleft zd]# cat data1.txt
The quick brown fox jumps over the lazy dog.
The quick brown fox jumps over the lazy dog.
The quick brown fox jumps over the lazy dog.
The quick brown fox jumps over the lazy dog.
The quick brown fox jumps over the lazy dog.
[root@ommleft zd]# sed 's/dog/cat/' data1.txt
The quick brown fox jumps over the lazy cat.
The quick brown fox jumps over the lazy cat.
The quick brown fox jumps over the lazy cat.
The quick brown fox jumps over the lazy cat.
The quick brown fox jumps over the lazy cat.

複数の編集コマンドを使用して、コマンドラインで2
実行するには、ちょうどそれに-eオプションを使用して、コマンドラインで複数のコマンドをsedの。

[root@ommleft zd]# sed -e 's/brown/green/;s/dog/cat/' data1.txt
The quick green fox jumps over the lazy cat.
The quick green fox jumps over the lazy cat.
The quick green fox jumps over the lazy cat.
The quick green fox jumps over the lazy cat.
The quick green fox jumps over the lazy cat.

ファイルから3.読み取りエディタコマンド

[root@ommleft zd]# cat script.sed
s/brown/green/
s/fox/elephant/
s/dog/cat/
[root@ommleft zd]# sed -f script.sed data1.txt
The quick green elephant jumps over the lazy cat.
The quick green elephant jumps over the lazy cat.
The quick green elephant jumps over the lazy cat.
The quick green elephant jumps over the lazy cat.
The quick green elephant jumps over the lazy cat.
公開された75元の記事 ウォン称賛7 ビュー10000 +

おすすめ

転載: blog.csdn.net/zhengdong12345/article/details/101266083