例1) id コマンドの出力結果から ID を取り出す
id の出力
$ id
uid=1001(user) gid=1000(usergrp)
$ id | sed -e 's/uid=//' -e 's/(.*//'
1001
文字列 "uid="と "("以降の文字列を削除している。
例2) id コマンドのユーザ名を取り出す
$ id | sed -e 's/uid=.*(\(.*\)) gid=.*/\1/'
user
最初の".*" はユーザID, 2番目の".*"はユーザ名を表し、"gid=.*"が残りの部分を表している。
取り出したいのは2番目の".*"の部分なので、丸括弧を使って取り出したい部分を括り、後ろの"//"部分を"/\1/と指定することで取り出している。
つまり、 \(〜\) で囲んだ部分は、\1, \2, \3 ・・・で後方参照することができる。
例3) 文字列の最初から5文字分を切り取る
$ sed -e 's/^\(.....\).*/\1/' file
□awk を使う場合
例1) 文字列の最初から5文字分を切り取る
$ awk '{printf "%-.5s\n", $0}' <file
□cut を使う場合
$ echo "STRING" | cut -c1-5