「UNIX/awksed」の編集履歴(バックアップ)一覧はこちら
「UNIX/awksed」(2011/03/08 (火) 23:14:00) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
&topicpath()
#contents
----
*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
----
&topicpath()
----
&topicpath()
#contents
----
*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
----
&topicpath()
----
表示オプション
横に並べて表示:
変化行の前後のみ表示: