MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
Linuxコマンド - awkのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
Linuxコマンド - awk
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == <code>awk</code>コマンドとは、入力として受け取った文字列に対して、フィールド区切り文字やレコード区切り文字を指定して、<br> 列に対する処理を行うためのコマンドである。<br> <br><br> == awkコマンドの基本書式 == <code>awk</code>コマンドの基本書式を以下に記載する。<br> awk -F'[フィールド区切り文字(複数可能)]' -v '変数=xx' '{awkコマンド}' file <br><br> == フィールドの出力 == 標準出力を行う<code>awk</code>コマンドの<code>print</code>を使用して、<code>awk</code>コマンドで指定したフィールドを取得する。<br> <code>-F'[フィールド区切り文字]'</code>オプションを指定しない場合、区切り文字にはタブまたは半角スペースが選択される。<br> <br> ==== 1フィールド目を出力 : print $1 ==== # 実行 echo 1 2 3 4 | awk '{print $1}' # 出力 1 <br> ==== 2フィールド目の出力 : print $2 ==== # 実行 echo 1 2 3 4 | awk '{print $2}' # 出力 2 <br> ==== 全ての文字列の出力 : print $0 または print ==== # 実行 echo 1 2 3 4 | awk '{print $0}' # 出力 1 2 3 4 <br> # 実行 echo 1 2 3 4 | awk '{print}' # 出力 1 2 3 4 <br> ==== フィールド区切り文字の指定 ==== フィールド区切り文字として、":"を指定する。<br> # 実行 echo 1:2:3:4 | awk -F'[:]' '{print $1}' # 出力 1 <br> また、フィールド区切り文字は複数指定できる。<br> <br> 以下の例では、フィールド区切り文字として、":"と"/"を指定している。<br> 並べて記述することで、":"と"/"がフィールド区切り文字として扱われる。<br> # 実行 echo 1:2/3:4 | awk -F'[:/]' '{print $3}' # 出力 3 <br> 複数フィールドの出力は、半角スペースで区切られる。(OFSを指定していないため)<br> OFSについては、後述のセクションを参照すること。<br> # 実行 echo 1:2/3:4 | awk -F'[:/]' '{print $1,$2}' # 出力 1 2 <br><br> == OFS == <code>OFS</code>(Output Field Separator)とは、awkコマンドの組み込み変数であり、出力のフィールド区切り文字を指定する。<br> <code>-v</code>オプションは、変数(variable)を指定するという意味のオプションである。<br> -v '変数=xx' <br> 以下の例では、OFSに半角スペースを指定して、フィールドの出力を#で区切る。<br> # 実行 echo 1:2/3:4 | awk -F'[:/]' -v 'OFS= ' '{print $1,$3}' # 出力 1 3 <br><br> == RS == <code>RS</code>(Record Separator)とは、awkコマンドの組み込み変数であり、入力のレコード区切り文字を指定する。<br> <br> 以下の例では、/を区切り文字に指定して、1:2と3:4に分けている。<br> /をレコード区切り文字にして、各レコードから1フィールド目を取得している。<br> 出力は、改行で区切って出力される。(ORSが指定されていないため)<br> # 実行 echo 1:2/3:4 | awk -F'[:]' -v 'RS=/' '{print $1}' # 出力 1 3 <br> # 実行 echo 1:2/3:4 | awk -F'[:]' -v 'RS=/' '{print $1,$2}' # 出力 1 2 3 4 <br> フィールド区切り文字とレコード区切り文字で同じ文字がある場合、レコード区切り文字が優先される。<br> # 実行 echo 1:2/3:4 | awk -F'[:/]' -v 'RS=/' '{print $1,$2}' # 出力 1 2 3 4 <br><br> == ORS == <code>ORS</code>(Output Record Separator)とは、awkコマンドの組み込み変数であり、出力のレコード区切り文字を指定する。<br> <br> 以下の例では、"This is ORS"を指定して、レコードの出力を区切っている。<br> # 実行 echo 1:2/3:4 | awk -F'[:/]' -v 'RS=/' -v 'ORS=This is ORS' '{print $1,$2}' # 出力 1 2This is ORS3 4 <br><br> == OFSとORSの明示 == 以下の例では、OFSは空白4つ、ORSは改行2つにしている。<br> また、\nは改行を示す。<br> # 実行 echo 1:2/3:4 | awk -F'[:/]' -v 'OFS= ' -v 'RS=/' -v 'ORS=\n\n' '{print $1,$2}' # 出力 1 2 3 4 <br><br> == 最終フィールドの取得 : $NF == 最終フィールドを取得するとして、$NFが用意されている。<br> # 実行 echo 1:2/3:4 | awk -F'[:/]' '{print $NF}' # 出力 4 <br> # 実行 echo 1:2/3:4 | awk -F'[:/]' '{print $NF-1}' # 出力 3 <br><br> == printf == printの他に、printfも使用できる。<br> # 実行 echo 1:2/3:4 | awk -F'[:/]' '{printf "%s\n%s\n",$NF,$NF-1}' # 出力 4 3 <br><br> __FORCETOC__ [[カテゴリ:CentOS]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]]
Linuxコマンド - awk
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse