• 在线工具
  • - 计算器
    • 字符计数
  • - 下载
    • TikTok 下载
    • 抖音下载
  • - 网络工具
    • BASE64
    • Base64 转图片
    • 图片转 Base64
    • URL 编码
    • JavaScript
    • 时间戳
    • Unicode 转换器
    • JSON 格式化
    • 修改扩展名
    • 制作列表
    • CSS 优化器
  • - 加密工具
    • MD5 加密
    • 随机生成器
  • - 图像工具
    • 图像压缩
    • 二维码生成器
    • 二维码识别器
    • 壁纸预览
    • 图片 EXIF
  • - 信息表
    • 血型遗传
    • 服装尺码
    • 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

其他工具
  • 字符计数 TikTok 下载 抖音下载 BASE64 Base64 转图片 图片转 Base64 URL 编码 JavaScript 时间戳 Unicode 转换器 JSON 格式化 修改扩展名 制作列表 CSS 优化器 MD5 加密 随机生成器 图像压缩 二维码生成器 二维码识别器 壁纸预览 图片 EXIF 血型遗传 服装尺码 app.tool_clock
  • テレビ東京、不適切表現で謝罪 「激録・警察密着24時!!」
    2024-05-29

    歯科医師の技術で愛好家も納得するサウナを細部まで再現するミニチュア作家
    2024-05-30

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

    藤井聡太八冠が勝ち、最終局へ 将棋叡王戦で2勝2敗
    2024-05-31

    【6月1日~2日】週末必見の“アート&デザイン”まとめ!
    2024-06-01

    【光る君へ】平安時代、強烈なエピソードで知られた2人の受領とは
    2024-06-01

    ニコライ・バーグマンが手がける北欧のジュエリーブランド〈フローラダニカ〉旗艦店が南青山にオープン。
    2024-06-03

    レイモンド・ローウィの名言「優れたインダストリアルデザインは、…」【本と名言365】
    2024-06-04

    稀代のピアニスト、マルタ・アルゲリッチの伝説の始まりはこの1曲から【クラシック今日は何の日?】
    2024-06-04

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

    「KOTARO NUKAGA(天王洲)」が移転し拡張。約386平米の巨大スペースに
    2024-06-05

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

    「UESHIMA MUSEUM」が開館。屈指の現代美術コレクションを一般公開
    2024-06-05

    東京都写真美術館で「今森光彦 にっぽんの里山」が開催へ
    2024-06-04

    今週末に見たい展覧会ベスト13。「令和6年 新指定国宝・重要文化財」展から国立西洋美術館の現代美術展、KYOTOGRAPHIEまで
    2024-06-04

    性被害者支援の法人設立 スマイル社
    2024-06-04

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

    そごう・西武が百貨店として初めてNFTマーケット開設、NFT作品約100点を発売
    2024-06-06

    写真家の吉田ルイ子さん死去
    2024-06-06

    藤井、棋聖戦5連覇へ白星発進
    2024-06-06

    ©  Dopu Box
    💛