を使用して、列内の特定の数値を合計しようとしていますawk
。「スミス」の列3だけを合計して、合計212を取得したいと思いますawk
。「スミス」だけでなく、を使用して列全体を合計できます。私が持っています:
awk 'BEGIN {FS = "|"} ; {sum+=$3} END {print sum}' filename.txt
また、私はパテを使用しています。助けてくれてありがとう。
smiths|Login|2
olivert|Login|10
denniss|Payroll|100
smiths|Time|200
smiths|Logout|10
awk -F '|' '$1 ~ /smiths/ {sum += $3} END {print sum}' inputfilename
-F
フラグフィールドセパレータを設定します。特別なシェル文字なので、一重引用符で囲みます。$1 ~ /smiths/
、最初のフィールドが正規表現と一致する行にのみ、次の{コードブロック}を適用します/smiths/
。ここでは実際には正規表現を使用しておらず、特定の値のみを使用しているため、次のように簡単に使用できます。
awk -F '|' '$1 == "smiths" {sum += $3} END {print sum}' inputfilename
文字列の同等性をチェックします。これは/^smiths$/
、別の回答で説明されて^
いるように、文字列の先頭(フィールド1の先頭)$
のみに一致するアンカーと文字列の末尾のみに一致するアンカーを含む正規表現を使用するのと同じです。正規表現にどれだけ精通しているかわからない。これらは非常に強力ですが、この場合、文字列の等価性チェックを同じように簡単に使用できます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加