取り出す

【 文字列を置換する「sed」 】 | 日経 xTECH(クロステック)

特定の文字列を抜き出す

 sedの置換では置換条件で「(...)」にくくった文字列を置き換え文字として利用できる。その際,始めに現われた(...)が「\1」,次に現われた(...)が「\2」に代入される。

 たとえば,拡張子部分(ドットより後の文字列)を抜き出したい場合は,

$ file_name="linux.txt" 
$ echo $file_name | sed -e "s/.*\.\([^.]*\)\$/\1/g" 
txt

とする。この場合はドットから末尾までの文字列でその中にドットが入っていない文字列を抜き出し,文字列全体と抜き出した文字列を置換している。

シェルスクリプト

#! /bin/sh
FILENAME=linux.txt
EXTENSION=`echo $FILENAME | sed -e 's/.*\.\([^.]*\)\$/\1/g'`
echo $EXTENSION