goo blog サービス終了のお知らせ 
goo

awk システム変数を理解(FS OFS RS ORS NF NR FILENAME)

awk 'BEGIN {FS="n"; RS="ORS="-"} {print $1,$NF}' aaaa

ファイルの中身
-----------------
1
2
3

4
5
6

7
8
9
-----------------

以下のスクリプトの実行

ファイルの1から3 4から6 7から8をひとつのデータとして考える

awk '
 BEGIN {
  FS="n";      # カラムの区切りを改行に
  RS="";       # レコードの区切りを空白に(ファイルの3と4の間)
  OFS="*";      # 出力のデミリタ(カンマがあればOFSに変わる $1,$NFの部分)
  ORS="nn"     # 出力のデミリタ(改行二つが1回ごとの実行のデミリタとなる)
 }

 {
  print NR"." $1,$NF # NR:現在の行 / NF:1レコードの最大カラムの位置
 }

 END {
  print FILENAME   # FILENAME : ファイル名の出力
 }' ファイル名


-----------------
結果

1.1*3

2.4*6

3.7*9

ファイル名
-----------------
コメント ( 0 )
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« awk 変数(パ... sed 読み込ん... »
 
コメント
 
コメントはありません。
コメントを投稿する
 
名前
タイトル
URL
コメント
コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。