{category}

Linux - テキスト操作

awk

オーク(テキスト処理とシェル

意味 テキスト処理言語


awkとは?

awkは、Linuxで使用されるテキスト処理のためのプログラミング言語です。主に構造化されたテキストデータの解析や加工に使われます。複雑なテキスト処理や計算を行うのに適しています。

awkの具体的な使い方

フィールド抽出例

$ awk '{print $1, $3}' employee.txt

👇出力結果

(employee.txtファイルの各行の1列目と3列目が表示されます)

このコマンドは、employee.txtファイルの各行から1番目と3番目のフィールド(列)を抽出して表示します。デフォルトでは空白やタブがフィールド区切りとして使用されます。

条件付き処理例

$ awk '$3 > 50000 {print $1, "高給取り"}' salary.txt

👇出力結果

(条件に合致する行の名前と「高給取り」が表示されます)

このコマンドは、salary.txtファイルの3列目(給与)が50000より大きい行に対して、1列目(名前)と「高給取り」という文字列を出力します。

列の合計計算例

$ awk '{sum += $2} END {print "合計金額: " sum}' sales.txt

👇出力結果

合計金額: (計算された合計値)

このコマンドは、sales.txtファイルの2列目(売上金額)の合計を計算し、最後に合計金額を表示します。

awkに関するよくある質問

Q. awkとsedの主な違いは?
A. awkはより強力なテキスト処理と計算機能を持っており、構造化されたデータの処理に適しています。sedは主に単純なテキスト置換や編集に使用されます。awkは複雑な条件分岐や計算が可能ですが、sedはより単純な文字列操作に特化しています。
Q. awkでCSVファイルを処理するには?
A. FSを使ってフィールドセパレータをカンマに設定します。例:awk -F',' '{print $2}' file.csv これにより、CSVファイルの2列目のデータを抽出できます。
Q. awkで条件付き処理を行うには?
A. if文を使用します。例:awk '{if($1 > 10) print $0}' file.txt これは、最初のフィールドが10より大きい行のみを出力します。

awkが学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、Linuxのawkや|、>&、xargs、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。


Linuxを学べる「プログラミング単語帳」アプリ

プログラミング単語帳がアプリになりました!Linuxはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。

収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。

いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。

2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!

2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!


関連するそのほかの単語

|

コマンドの出力を次の入力に

種類: ストリーム制御

>&

出力先を指定

種類: ストリーム制御

xargs

引数を構築して実行

種類: ストリーム制御

rm

ファイルの削除

種類: ファイル操作

wget

ファイルのダウンロード

種類: ファイル転送