Linux備忘録18:後方参照、文字列変換(sed、tr、expand)
# sed -r -e "s/\t+/,/g" {ファイル}
上記はタブ部分を全て、単一カンマに変換する場合の例。
※-rオプションを使用する
※trコマンドはデフォルトで正規表現使用可
【sedの置き換えで後方参照を使用する】
後方参照させたい(置き換えしたくない)部分を丸括弧()でくくる
※参照部分は\1、\2、\3で使用可能。
⇒192.168.0.192というIPのうち、末尾の192だけ置換する
# sed -r -e "s/(192.168.0.)192/\1254/g"
※アンダーライン箇所が参照部分
以下のようなテキストファイル(test)でwindowsに付随する【置換前】のみを置換する
※windows部分は変更されないようにする
# cat test
Windows 置換前
mac 置換前
windows 置換前
MAC 置換前
UNIX 置換前
linux 置換前
Linux 置換前
Windows XP 置換前
Windows VISTA 置換前
※スクリプトのgiオプションは、g(全該当箇所) 、i(大文字、小文字を区別しないの意味)
●出力結果
Windows 置換済み
mac 置換前
windows 置換済み
MAC 置換前
UNIX 置換前
linux 置換前
Linux 置換前
Windows XP 置換済み
Windows VISTA 置換済み
【tabをスペースに変換して標準出力する】
# expand {ファイル}
【ファイルを結合する】
pasteコマンド
二つ以上のファイルを第一引数から順番に、最終カラムで結合して表示する
# paste tmp_*
※カレントのtmp_*を全て結合する、結合部分はタブで埋められる