シェルワンライナー: 問題5

問題

ファイル ntp.confについて、poolの項目( 1列目にpoolと書かれている行)にあるサーバの名前 を抽出してみましょう。

回答

# 自分の回答
cat ntp.conf | awk '$1=="pool" {print $2}'
# ちなみにテキストの答えはこちら
# こっちのが書きやすい。
# スピード意識しなくていいので書きやすい方で良いよね。とういことらしい。
cat ntp.conf | awk '$1=="pool"' | awk '{print $2}'

調べたこと

grep について

  • grepのパターン指定ってどうやるんだっけ?
    • grep 'red.*apple' example.txt
    • 'でくくればよい

awkについて

  • awkってどういうコマンドだっけ?
    • awk ‘/正規表現/’grep ‘正規表現’ と同じ意味
  • awk の $1ってどういう意味?
    • 入力の一列目ってことらしい
    • 列っていうのはスペースで区切られる?
      • デフォルトでは スペースとタブ
      • -f を使えば任意の区切り文字を指定できる。
  • {} でくくらないとだめなんでしたっけ?
    • そもそもawk$awk pattern { action } っていう形式
    • patternはフィルタ。正規表現とかで入力の処理する部分を指定する
    • actionは実際に実行するコマンド
  • ‘ hoge ‘ で囲わないとだめなんでしたっけ?
    • 文字列定数と呼ばれるらしい
    • こいつで囲っておくと特殊文字がでてきてもバックスラッシュが不要になるので便利らしい。

感想

  • 答え見ずに正解できた。やったねぇ
  • ググる代わりにchatGPTはやっぱりかなり有効な気がする
    • 無駄な情報の中から、必要な情報を探す必要がないし
    • 必要な情報だけを教えてくれるから、頭にも入りやすい
    • 間違った情報かどうかは、こういう答えがすぐわかったり、枯れた技術に関することではあまりリスクが無いと思う。
      • あとで、正式ドキュメントを追って確認すればいいし。
    • 初心者が、階段登って行くようなフェーズにおいてはかなり有効な気がする。