InfraLab
TEXT-PROCESSING38 cmd

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

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

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

38 / 38

CommandDescriptionExampleCopy
grep PATTERN fileawk / sed / grep で grep PATTERN file を実務運用で使う$ grep "ERROR" /var/log/app.log
grep -Eawk / sed / grep で grep -E を実務運用で使う$ grep -E "error|warn" app.log
grep -vawk / sed / grep で grep -v を実務運用で使う$ grep -v "healthcheck" access.log
grep -nawk / sed / grep で grep -n を実務運用で使う$ grep -n "timeout" app.log
grep -iawk / sed / grep で grep -i を実務運用で使う$ grep -i "fatal" app.log
grep -A -B -Cawk / sed / grep で grep -A -B -C を実務運用で使う$ grep -C 3 "panic" app.log
grep -rawk / sed / grep で grep -r を実務運用で使う$ grep -rn "listen" /etc/nginx
grep --includeawk / sed / grep で grep --include を実務運用で使う$ grep -r --include="*.conf" "server_name" /etc/nginx
grep -oawk / sed / grep で grep -o を実務運用で使う$ grep -oE "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+" access.log
grep -cawk / sed / grep で grep -c を実務運用で使う$ grep -c " 500 " access.log
sed s/x/y/gawk / sed / grep で sed s/x/y/g を実務運用で使う$ sed "s/old/new/g" file.txt
sed -iawk / sed / grep で sed -i を実務運用で使う$ sed -i.bak "s/DEBUG/INFO/g" app.conf
sed -n pawk / sed / grep で sed -n p を実務運用で使う$ sed -n "10,20p" app.log
sed address deleteawk / sed / grep で sed address delete を実務運用で使う$ sed "/healthcheck/d" access.log
sed line rangeawk / sed / grep で sed line range を実務運用で使う$ sed "1,5s/foo/bar/g" file.txt
sed appendawk / sed / grep で sed append を実務運用で使う$ sed "/server {/a\ add_header X-Test yes;" nginx.conf
sed multiline Nawk / sed / grep で sed multiline N を実務運用で使う$ sed -n "N;/foo\nbar/p" file.txt
sed print matchingawk / sed / grep で sed print matching を実務運用で使う$ sed -n "/ERROR/p" app.log
sed extract groupawk / sed / grep で sed extract group を実務運用で使う$ sed -n "s/^user=\([^ ]*\).*/\1/p" app.log
sed newline literalawk / sed / grep で sed newline literal を実務運用で使う$ sed "s/,/\n/g" values.csv
awk print fieldawk / sed / grep で awk print field を実務運用で使う$ awk "{print $1, $NF}" access.log
awk BEGIN FSawk / sed / grep で awk BEGIN FS を実務運用で使う$ awk "BEGIN{FS=":"}{print $1}" /etc/passwd
awk -Fawk / sed / grep で awk -F を実務運用で使う$ awk -F, "{print $1,$3}" users.csv
awk printfawk / sed / grep で awk printf を実務運用で使う$ awk "{printf "%-20s %s\n", $1, $2}" file.txt
awk sumawk / sed / grep で awk sum を実務運用で使う$ awk "{sum += $5} END{print sum}" access.log
awk associative arrayawk / sed / grep で awk associative array を実務運用で使う$ awk "{count[$1]++} END{for (ip in count) print count[ip], ip}" access.log
awk lengthawk / sed / grep で awk length を実務運用で使う$ awk "length($0) > 120" app.log
awk select numericawk / sed / grep で awk select numeric を実務運用で使う$ awk "$9 >= 500 {print}" access.log
awk substrawk / sed / grep で awk substr を実務運用で使う$ awk "{print substr($0,1,80)}" app.log
awk ENVIRONawk / sed / grep で awk ENVIRON を実務運用で使う$ awk "BEGIN{print ENVIRON["HOME"]}"
grep awk top IPawk / sed / grep で grep awk top IP を実務運用で使う$ grep " 500 " access.log | awk "{print $1}" | sort | uniq -c | sort -nr | head
CSV column extractawk / sed / grep で CSV column extract を実務運用で使う$ awk -F, "NR>1 {print $2}" users.csv
Apache top 10 IPawk / sed / grep で Apache top 10 IP を実務運用で使う$ awk "{print $1}" access.log | sort | uniq -c | sort -nr | head -10
Specific IP countawk / sed / grep で Specific IP count を実務運用で使う$ grep "192.0.2.10" access.log | wc -l
Replace config safelyawk / sed / grep で Replace config safely を実務運用で使う$ sed -i.bak "s/^worker_processes.*/worker_processes auto;/" /etc/nginx/nginx.conf
Extract status codeawk / sed / grep で Extract status code を実務運用で使う$ awk "{print $9}" access.log | sort | uniq -c | sort -nr
Filter time rangeawk / sed / grep で Filter time range を実務運用で使う$ awk "$4 >= "[14/May/2026:10" && $4 < "[14/May/2026:11"" access.log
Find unique errorsawk / sed / grep で Find unique errors を実務運用で使う$ grep -E "ERROR|FATAL" app.log | sed "s/[0-9-]{10}.*/.../" | sort -u
Related