sakawork @ ウィキ

メニュー

▼プログラミング言語関連
▼プロトコル関連
▼Web関連



ページ編集支援





リンク





UNIX > awksed


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。


awk/sed

awk

テキスト処理用のスクリプト言語

本来の用途よりも狭い使い方ではあるが、自分はシェルスクリプトの中で、
C言語のprintfのような用途で使っていた。

ログファイルからcsv形式に変換したり、特定の項目を出力するなど
簡単なテキスト処理に使っていた。

実行例

$ cat a.txt
1 -2 3.2 4.3 5.345
6 -7.5 8.2 9 0
 printの例
$ awk '{print $1}' a.txt
1
6
 printfの例
$ awk '{printf "%4d,\t%4.2f,\t%4.2f,\t%4.2f\n",$1,$2,$3,$4+$5}' a.txt
   1,   -2.00,  3.20,   8.64
   6,   -7.50,  8.20,   9.00

 使ったことは無かったが{}の前に正規表現を書けば一致する行だけ処理できるようだ。
 行の先頭(^)が1になっている行の5番目の要素を出力
$ awk '/^1/ {print $5}' a.txt
5.345
 行の中に任意の文字(".*")のあとに .3 が存在する行の1番目を出力
$ awk '/.*\.3/ {print $1}' a.txt
1

sed

テキスト変換に使うコマンド

実行例

$ cat a.txt
1 -2 3.2 4.3 5.345
6 -7.5 8.2 9 0
 1 を 4 に書き換える
$ sed "s/1/4/g" a.txt
4 -2 3.2 4.3 5.345
6 -7.5 8.2 9 0
 .2 を .9 に書き換える
$ sed "s/\.2/\.9/g" a.txt 
1 -2 3.9 4.3 5.345
6 -7.5 8.9 9 0
 各行から3を一度だけ消す
$ sed "s/3//" a.txt
1 -2 .2 4.3 5.345
6 -7.5 8.2 9 0
 各行から3をすべて消す
$ sed "s/3//g" a.txt
1 -2 .2 4. 5.45
6 -7.5 8.2 9 0



更新履歴

取得中です。


タグクラウド


アクセス

本日のアクセス
-
昨日のアクセス
-