Linux 中級まとめ — テキスト処理とシェルスクリプト

この記事は、基礎コマンドからシェルスクリプトまでLinuxの実践的なスキルを1からマスターする「Linux入門講座の一部」です。
grep正規表現・sed・awk・sort uniq cut wc tr tee・tar ln diff・du df dateと、変数・引数・条件・ループ・関数・入力・連携・出力のシェル構文を、分類図と分野別の早見表で1ページに横断整理します。

Linux 中級で学んだことの全体像

このページはブラウザで実行する演習ではなく、中級(テキスト処理 I1〜I10 とシェルスクリプト S1〜S10)の総整理が目的です。検索と置換・列の集計・整形・アーカイブ・差分・システム情報といったテキスト処理と、変数から関数・入力読込・コマンド連携・レポート出力までのシェルスクリプトを、図と分野別の早見表で 1 ページに横断整理します。早見表から各記事へ戻り、いつでも復習に使えます。

中級コマンドの分類マップ
正規表現grep / -E / -o置換・抽出sed s/// -n p列・集計awk $1 BEGIN END整形sort uniq cut wc変換・分岐tr tee xargsファイルtar ln diff情報du df date unameシェル基礎#!/bin/sh chmod +x制御・連携if for fn $(...)テキスト処理整形・ファイルシステム・スクリプト
テキスト処理(正規表現・sed・awk・整形)とファイル系、システム情報、シェルスクリプトの 9 分野で整理します。
シェルスクリプトの構成チートシート
shebang#!/bin/sh変数v=x "$v"引数$1 $@ ${1:-d}条件[ -f ] if caseループfor while関数name(){} local入力while read < f連携$(grep|awk)出力>> here-doc $?宣言と引数制御構造入力と出力
shebang から変数・引数・条件・ループ・関数・入力・連携・出力までがスクリプトの構成要素です。

テキスト処理の早見 — 正規表現 / sed / awk

文字列の検索・置換・抽出・集計を担う中核グループです。grepの正規表現で行を絞り、sedで置換や行操作を行い、awkで列を取り出して集計します。記号の意味を押さえると、ログやCSVの加工が一気に楽になります。

書き方意味
^ / $行頭・行末に一致する
. / *任意の1文字・直前の0回以上の繰り返し
[abc] / [a-z]文字クラス(いずれか1文字・範囲)
grep -E拡張正規表現(+ | ()が使える)
grep -o一致した部分だけを取り出す
書き方意味
sed 's/old/new/'各行の最初のoldnewに置換
sed 's/old/new/g'行内すべてのoldを置換
sed -n 'Np'N 行目だけを抽出する
sed '/pat/d'patを含む行を削除する
sed -iファイルを直接書き換える
書き方意味
awk '{print $1}'1 列目を取り出す($NFは最終列)
awk -F','区切り文字を変える
NR / NF行番号・その行の列数
/pat/{ … }一致行だけに処理を適用する
BEGIN{} … END{}処理前・処理後の初期化と集計

整形ツールとファイル系の早見

並べ替え・重複除去・列抽出・行数・文字変換・分岐を担う整形ツールと、アーカイブ・リンク・差分・システム情報のファイル系コマンドです。パイプでつないで集計やレポートの前処理に使います。

書き方意味
sort / sort -n並べ替える(-nは数値順)
uniq / uniq -c連続重複を除く(-cは件数付き)
cut -d',' -f1区切りを指定して列を抽出する
wc -l / wc -w行数・単語数を数える
tr a-z A-Z / tr -d / tr -s文字変換・削除・連続圧縮
tee file出力を画面とファイルへ分岐する
書き方意味
tar -cf a.tar dirディレクトリを 1 つにまとめる(非圧縮)
tar -tf a.tarアーカイブの中身を一覧する
tar -xf a.tar / -C dir展開する(-Cで展開先を指定)
ln -s target nameシンボリックリンクを作る(ls -l->
ln a bハードリンクを作る
diff a b / diff -u差分を表示する(-uは統一形式)
du -sh / df -h使用量・空き容量を見やすく表示する
date +%Y-%m-%d / uname -a日時の整形・カーネル情報を表示する

シェルスクリプト構文の早見

変数・引数・条件・ループ・関数・入力読込・コマンド連携・出力までの構文です。#!/bin/shで始め、chmod +xで実行権を付け、./fileで実行します。本講座のコンソールはashのため、[ ]ifを使います([[ ]]bash拡張です)。

書き方意味
#!/bin/sh / chmod +x f / ./fshebang・実行権付与・実行
v=x / "$v"変数の代入と参照(クォートで安全に)
$1 / $@ / $#第1引数・全引数・引数の個数
${1:-def}引数が無いときの既定値
$(...) / $(( ))コマンド置換・算術展開
[ -f f ] / if … fi / caseファイル判定・条件分岐
for … do … done / while繰り返し処理
name() { … } / local関数定義とローカル変数
while read line; do … done < fファイルを1行ずつ読む
printf '%s\t%s\n' a b書式付き出力(タブ・改行を明示)
> f / >> f / 2> err上書き・追記・標準エラーの分離
<<EOF … EOF / $?here-doc・直前の終了コード

中級、お疲れ様でした!

ここまでで、正規表現での検索、sed / awkによる置換と集計、sort / uniq / cut / wc / tr / teeでの整形、tar / ln / diff / システム情報のファイル操作、そして変数・引数・条件・ループ・関数・入力読込・コマンド連携・レポート出力までのシェルスクリプトがそろいました。これらを組み合わせれば、ログ集計や定型作業の自動化といった実務の処理をひと通り書けます。

この早見表は手元に置いて、書き方を忘れたら各記事へ戻り、実際に手を動かして確かめてください。次は学んだ要素を組み合わせ、自分の作業に合わせた小さな自動化スクリプトから書き始めてみましょう。