AWKコマンド練習問題:1

どうも、シローです。

みなさんはAWKについてご存知ですか?

AWKとはプログラミング言語の一種で文字列を編集するのに特化しています。

主な利用用途としてはターミナルでのコマンドとして文字列処理の過程で使われます。

AWKをある程度知っておくと、テキストファイルをちょっと変更して出力する時などにコマンド一発で行けたりするので

意外と業務でも役に立つことがありそうですよ。

というわけで、僕も勉強中なのですけど、練習問題を出して後で回答を出す感じの形式でまとめようと思いますー。

事前準備

今回はAWKで編集するファイルはこれなので、適宜用意してください。

aa

catコマンドで出力した結果にAWKを通して出力しようと思います。こんな感じで

それでは問題です。

問題1:1列目と2列目を出力してください。

問題2:5列目が30を超えている行を出力してください

問題3:3列目がPHPとなっている行を出力してください

回答は↓

 

 

 

 

 

 

 

回答1

AWKコマンドは各行の空白で分割された単語を$1, $2, $3….という風に格納しています。

今回は1,2列目に絞って出力するので'{print $1, $2}' で大丈夫です。

回答2

AWKで出力する条件を絞り込む時は'{print}’の前に条件式を記述します。

今回は5列目が30を超えている場合なので、’$5 > 30′ とした後で ‘{print}’で行を出力します。

回答3

文字列が一致するかの条件は多くのプログラミング言語と同じように’==’が使えます。

ただ、気をつけないと行けないのが、文字列の一致を判定するために’ ” ‘(ダブルクォーテーション)で挟んでやる必要があります。

なので、’$3 == “PHP”‘をprintの前に記述します。全体をシングルクォーテーションで囲っているので、勘違いしやすいので、ちゃんとダブルクォーテーションで挟むのがポイントです。

 

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です