フィルタを使用した文字列操作 1
フィルタとは
フィルタとは標準入力からデータを受け取り、そのデータを加工した上で標準出力に出力する機能のこと
コマンド | filter
sed コマンドを使用したフィルタリング
各行の最初に一致した文字列のみ置換
sed -e 's/パターン1/パターン2/'
一致したすべての文字列を置換
sed -e 's/パターン1/パターン2/g'
アルファベットの大文字・小文字を区別せず、置換する
sed -e 's/パターン1/パターン2/i'
連続置換
複数パターンの置換を連続して行うには、-e オプションで複数の置換パターンを連結して指定
sed -e 's/パターン1/パターン2/' -e 's/パターン3/パターン4/'
パターン指定の区切り文字を変更する
sed -e 's%パターン1%パターン2%'
sed -e 's|パターン1|パターン2|'
sed -e 's:パターン1:パターン2:'
文字列の削除
各行の最初に一致したパターンを削除する。
sed -e 's/パターン//'
全てのパターンを削除する。
sed -e 's/パターン//g'
正規表現を使用した文字列置換
「a~e」を「X」に置換する
数字以外を削除
行頭に文字を追加する
行末に文字を追加する
変数を利用した文字列置換
sed -e "s/変数名/置換後パターン/"
sed -e "s/置換対象パターン/変数名/"
sed -e "s/変数名1/変数名2/"
行を指定した置換
特定の 1行のみで置換
sed -e '行番号s/パターン1/パターン2/'
5行目を置換
開始行~終了行の範囲でのみ置換
sed -e '開始行,終了行s/パターン1/パターン2/'
4,5行目を置換
特定の行を削除する
sed -e '/パターン/d'
空行を削除する
sed -e '/^$ /d'
特定の行のみを表示する
n行目を表示
sed -n '行番号p'
1行目を表示
n行目~m行目を表示
sed -n '開始行,終了行p'
2~4行目を表示
特定の位置の文字列を切り出す
sedコマンドの場合
sed -e 's/パターンA\(切り出し対象パターン\)パターンB/\1/'
exprコマンドの場合
expr "文字列" : "パターンA\(対象パターン\)パターンB"