InfraLab
TEXT-PROCESSING38 cmd

テキスト処理 (awk / sed / grep) チート集

grep、sed、awk の基本から正規表現、置換、フィールド処理、集計、ログ解析、CSV 抽出、Apache log の Top IP 集計まで、シェル作業で頻出する実例を集めたチート集。

更新日
2026-05-29
参照範囲
公式ドキュメント / man page / 主要ベンダーCLI
対象実装
主要 Linux / BSD / ネットワーク機器 CLI の一般的な実装
免責
OS とバージョン差分は実環境で確認してください。

このチートシートの使いどころ

テキスト処理 (awk / sed / grep) チート集は、grep、sed、awk の基本から正規表現、置換、フィールド処理、集計、ログ解析、CSV 抽出、Apache log の Top IP 集計まで、シェル作業で頻出する実例を集めたチート集。 対象は公式ドキュメント、man page、主要ベンダー CLI で確認できる現行の一般的な実装です。カテゴリはgrep、sed、awk、組み合わせ実例を中心に、38件のコマンドや値を用途別に引けます。障害調査、設定変更前の確認、作業メモ作成で、grep、sed、awk、text processing、regexに関連する操作を短時間で探すために使います。

38 / 38

grep PATTERN file

awk / sed / grep で grep PATTERN file を実務運用で使う

Example
$ grep "ERROR" /var/log/app.log
grep -E

awk / sed / grep で grep -E を実務運用で使う

Example
$ grep -E "error|warn" app.log
grep -v

awk / sed / grep で grep -v を実務運用で使う

Example
$ grep -v "healthcheck" access.log
grep -n

awk / sed / grep で grep -n を実務運用で使う

Example
$ grep -n "timeout" app.log
grep -i

awk / sed / grep で grep -i を実務運用で使う

Example
$ grep -i "fatal" app.log
grep -A -B -C

awk / sed / grep で grep -A -B -C を実務運用で使う

Example
$ grep -C 3 "panic" app.log
grep -r

awk / sed / grep で grep -r を実務運用で使う

Example
$ grep -rn "listen" /etc/nginx
grep --include

awk / sed / grep で grep --include を実務運用で使う

Example
$ grep -r --include="*.conf" "server_name" /etc/nginx
grep -o

awk / sed / grep で grep -o を実務運用で使う

Example
$ grep -oE "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+" access.log
grep -c

awk / sed / grep で grep -c を実務運用で使う

Example
$ grep -c " 500 " access.log
sed s/x/y/g

awk / sed / grep で sed s/x/y/g を実務運用で使う

Example
$ sed "s/old/new/g" file.txt
sed -i

awk / sed / grep で sed -i を実務運用で使う

Example
$ sed -i.bak "s/DEBUG/INFO/g" app.conf
sed -n p

awk / sed / grep で sed -n p を実務運用で使う

Example
$ sed -n "10,20p" app.log
sed address delete

awk / sed / grep で sed address delete を実務運用で使う

Example
$ sed "/healthcheck/d" access.log
sed line range

awk / sed / grep で sed line range を実務運用で使う

Example
$ sed "1,5s/foo/bar/g" file.txt
sed append

awk / sed / grep で sed append を実務運用で使う

Example
$ sed "/server {/a\ add_header X-Test yes;" nginx.conf
sed multiline N

awk / sed / grep で sed multiline N を実務運用で使う

Example
$ sed -n "N;/foo\nbar/p" file.txt
sed print matching

awk / sed / grep で sed print matching を実務運用で使う

Example
$ sed -n "/ERROR/p" app.log
sed extract group

awk / sed / grep で sed extract group を実務運用で使う

Example
$ sed -n "s/^user=\([^ ]*\).*/\1/p" app.log
sed newline literal

awk / sed / grep で sed newline literal を実務運用で使う

Example
$ sed "s/,/\n/g" values.csv
awk print field

awk / sed / grep で awk print field を実務運用で使う

Example
$ awk "{print $1, $NF}" access.log
awk BEGIN FS

awk / sed / grep で awk BEGIN FS を実務運用で使う

Example
$ awk "BEGIN{FS=":"}{print $1}" /etc/passwd
awk -F

awk / sed / grep で awk -F を実務運用で使う

Example
$ awk -F, "{print $1,$3}" users.csv
awk printf

awk / sed / grep で awk printf を実務運用で使う

Example
$ awk "{printf "%-20s %s\n", $1, $2}" file.txt
awk sum

awk / sed / grep で awk sum を実務運用で使う

Example
$ awk "{sum += $5} END{print sum}" access.log
awk associative array

awk / sed / grep で awk associative array を実務運用で使う

Example
$ awk "{count[$1]++} END{for (ip in count) print count[ip], ip}" access.log
awk length

awk / sed / grep で awk length を実務運用で使う

Example
$ awk "length($0) > 120" app.log
awk select numeric

awk / sed / grep で awk select numeric を実務運用で使う

Example
$ awk "$9 >= 500 {print}" access.log
awk substr

awk / sed / grep で awk substr を実務運用で使う

Example
$ awk "{print substr($0,1,80)}" app.log
awk ENVIRON

awk / sed / grep で awk ENVIRON を実務運用で使う

Example
$ awk "BEGIN{print ENVIRON["HOME"]}"
grep awk top IP

awk / sed / grep で grep awk top IP を実務運用で使う

Example
$ grep " 500 " access.log | awk "{print $1}" | sort | uniq -c | sort -nr | head
CSV column extract

awk / sed / grep で CSV column extract を実務運用で使う

Example
$ awk -F, "NR>1 {print $2}" users.csv
Apache top 10 IP

awk / sed / grep で Apache top 10 IP を実務運用で使う

Example
$ awk "{print $1}" access.log | sort | uniq -c | sort -nr | head -10
Specific IP count

awk / sed / grep で Specific IP count を実務運用で使う

Example
$ grep "192.0.2.10" access.log | wc -l
Replace config safely

awk / sed / grep で Replace config safely を実務運用で使う

Example
$ sed -i.bak "s/^worker_processes.*/worker_processes auto;/" /etc/nginx/nginx.conf
Extract status code

awk / sed / grep で Extract status code を実務運用で使う

Example
$ awk "{print $9}" access.log | sort | uniq -c | sort -nr
Filter time range

awk / sed / grep で Filter time range を実務運用で使う

Example
$ awk "$4 >= "[14/May/2026:10" && $4 < "[14/May/2026:11"" access.log
Find unique errors

awk / sed / grep で Find unique errors を実務運用で使う

Example
$ grep -E "ERROR|FATAL" app.log | sed "s/[0-9-]{10}.*/.../" | sort -u
対応ツール
Related