• Online Tools
  • - Calculators
    • Character Count
  • - Download
    • TikTok Download
    • DouYin Download
  • - Web Tools
    • BASE64
    • Base64 to Image
    • Image to Base64
    • URL Encoding
    • JavaScript
    • Timestamp
    • Unicode Converter
    • JSON Format
    • Modify Extension
    • Make List
    • CSS Optimizer
  • - Encryption Tools
    • MD5 Encryption
    • Random Generator
  • - Image Tools
    • Image Compression
    • QR Code Generator
    • QR Code Reader
    • Wallpaper Preview
    • Image EXIF
  • - Info Sheets
    • Blood Type Heredity
    • Clothing Sizes
    • app.tool_clock
  • [email protected]
DopuBox
  • English
  • Español
  • Français
  • 日本語
  • 한국어
  • 简体中文
  • 繁體中文
全部 ニュース Meta Code 文化・アート
awkを使用してテキストまたは文字列をモードでフィルタする方法
2022-01-13

テキストをフィルタするときに、特定の条件に基づいて、または一致する特定のモードを使用して、ファイルまたは数行の文字列のいくつかの行をマークしたい場合があります。awkを使用してこのタスクを完了するのは簡単です。これはawkの中であなたに役立ついくつかの機能の一つです。

次の例を見てみましょう。例えば、あなたが買いたい食べ物が書かれたショッピングリストがあります。foodという名前です。prices.list、それに含まれる食べ物の名前と相応の価格は以下の通りです。

$ cat food_prices.list No Item_Name Quantity Price 1 Mangoes 10 $2.45 2 Apples 20 $1.50 3 Bananas 5 $0.90 4 Pineapples 10 $3.46 5 Oranges 10 $0.78 6 Tomatoes 5 $0.55 7 Onions 5 $0.45

次に、単価が$2より大きい食べ物を記号でマークしたい場合は、次のコマンドを実行して目的を達成できます。

$ awk '/ */$[2-9]/.[0-9][0-9] */ { print $1, $2, $3, $4, "*" ; } / */$[0-1]/.[0-9][0-9] */ { print ; }' food_prices.list

単価が$2より大きい項目を印刷

上の出力からマンゴーとパイナップルが含まれている行の末尾に(*)マークが付いていることがわかります。単価をチェックすると、単価が確かに$2を超えていることがわかります。

この例では、2つのモードを使用しています。

第一モード:/*/$[2-9]/.[0-9][0-9]*/食品の単価が$2より大きい行が得られます。

2番目のモード:/*/$[0-1]/.[0-9][0-9]*/食べ物の単価が$2未満の行を検索します。

上の命令は具体的に何をしましたか。このファイルには4つのフィールドがあり、モードが$2より大きい食べ物の単価を含む行に一致すると、4つのフィールドがすべて出力され、行の末尾に(*)記号がタグとして追加されます。

2番目のモードは、入力ファイルfood_に表示されるように、$2未満の他の食品単価を含む行を簡単に出力するだけである。prices.リストの中の様子。

これにより、$2を超える価格の食品項目をフィルタリングするためにモードを使用することができます。上記の出力には問題がありますが、(*)記号のある行は他の行のようにフォーマットされていません。これにより、出力がはっきりしません。

awkシリーズの第2部でも同様の問題を見ましたが、次の2つの方法で解決できます。

1、printfコマンドは以下のように使用できますが、長くて退屈です。

$ awk '/ */$[2-9]/.[0-9][0-9] */ { printf "%-10s %-10s %-10s %-10s/n", $1, $2, $3, $4 "*" ; } / */$[0-1]/.[0-9][0-9] */ { printf "%-10s %-10s %-10s %-10s/n", $1, $2, $3, $4; }' food_prices.list

AwkとPrintfを使用してアイテムをフィルタおよび出力

$ awk '/ */$[2-9]/.[0-9][0-9] */ { print $0 "*" ; } / */$[0-1]/.[0-9][0-9] */ { print ; }' food_prices.list

Awkと変数を使用してアイテムをフィルタおよび出力

結論

これがすべてです。awkコマンドを使用すると、いくつかの簡単な方法でモードマッチングを利用してテキストをフィルタリングし、1つのファイルでテキストまたは文字列のいくつかの行をマークすることができます。


ソース元URL:https://dopubox.com/article/p/871fc227af0caae8

Other Tools
  • Character Count TikTok Download DouYin Download BASE64 Base64 to Image Image to Base64 URL Encoding JavaScript Timestamp Unicode Converter JSON Format Modify Extension Make List CSS Optimizer MD5 Encryption Random Generator Image Compression QR Code Generator QR Code Reader Wallpaper Preview Image EXIF Blood Type Heredity Clothing Sizes app.tool_clock
  • 美術館の裏側を伝える展覧会「鎌倉別館40周年記念 てあて・まもり・のこす 神奈川県立近代美術館の保存修復」レポート
    2024-05-29

    民藝・イズ・ビューティフル。 日本文化と黒人文化が融合する「アフロ民藝」とは?
    2024-05-30

    “ひばり”の愛称にふさわしい美しいメロディ。ハイドンの『弦楽四重奏曲第67番』【クラシック今日は何の日?】
    2024-05-30

    原作者の意向は取り入れられたと日テレ
    2024-05-30

    制作期間「足りていなかった可能性」
    2024-05-31

    古本屋を巡り、顧みられなくなった作品、作家を生き返らせた九大大学院教授没後20年 教え子や研究仲間を支える「清新な光景」
    2024-05-30

    黒柳徹子さん、北京で特別授業 「日本語勉強続けて」
    2024-05-31

    鳥取・大山でたいまつ行列 夏山開き前夜祭
    2024-06-01

    <今週の本棚・次回の予定>6月8日の毎日新聞書評欄は『新装版 ペルーからきた私の娘』ほか
    2024-06-03

    峰不二子役の増山江威子さん死去 声優、艶ある声でルパン翻弄
    2024-06-03

    万博無料招待、大阪の学校7割が希望 「不参加」の選択肢ない調査手法に批判も
    2024-06-03

    福島県沖地震で解体 老舗文具店の新ビルが開店 イベントスペースも
    2024-06-04

    GROUP「島をつくる | Planning Another Island」(マイナビアートスクエア)開幕レポート。高層ビルのなかで建築をコンポストする
    2024-06-05

    akakilikeの新作ダンス公演『希望の家』が松本・東京の2都市で上演へ
    2024-06-04

    アートフェア東京、次回は2025年3月に開催決定
    2024-06-04

    国際博物館の日、今年のテーマは「学びと研究のための博物館」
    2024-06-04

    「犬派?猫派?」(山種美術館)開幕レポート。初公開から名作まで勢揃い
    2024-06-04

    クールべ《世界の起源》はなぜ攻撃されたのか? ポンピドゥー・センター・メッスで破壊・盗難事件
    2024-06-04

    夜の美術館を楽しめる「サマーナイトミュージアム2024」が開催。東京都現代美術館、東京都庭園美術館などで入場料割引も
    2024-06-04

    「art stage OSAKA 2024」が9月に開催。大阪・関西万博への機運も醸成
    2024-06-05

    ©  Dopu Box
    💛