Linux-シェル,IFSを用いた文字列操作

スポンサーリンク

鍛錬 5

Linux-シェルスクリプト,IFSを用いた文字列操作

Linux のシェルスクリプトで、IFS を用いて文字列操作を行う方法についてです。

スポンサーリンク

シェルスクリプト

以下のシェルスクリプトは、デリミタ(区切り文字)を設定して文字列を抽出しています。

@ をデリミタとして文字列を抽出する場合

以下は、文字列「apple@orange@grape」について、@ をデリミタとして文字列を抽出しています。

#!/bin/sh

sample_str="apple@orange@grape"

IFS_backup=$IFS
IFS='@'
set -- $sample_str
IFS=$IFS_backup
word_1=$1
word_2=$2
word_3=$3

echo "word_1 = $word_1"
echo "word_2 = $word_2"
echo "word_3 = $word_3"
***@ubuntu:~/***/test/shell$ 
***@ubuntu:~/***/test/shell$ ./test_if.sh
word_1 = apple
word_2 = orange
word_3 = grape

スペースをデリミタとして文字列を抽出する場合

以下は、文字列「apple orange grape」について、スペースをデリミタとして文字列を抽出しています。

#!/bin/sh

sample_str="apple orange grape"

IFS_backup=$IFS
IFS=' '
set -- $sample_str
IFS=$IFS_backup
word_1=$1
word_2=$2
word_3=$3

echo "word_1 = $word_1"
echo "word_2 = $word_2"
echo "word_3 = $word_3"
***@ubuntu:~/***/test/shell$ 
***@ubuntu:~/***/test/shell$ ./test_if.sh
word_1 = apple
word_2 = orange
word_3 = grape

‘\n'(改行) をデリミタとして文字列を抽出する場合

以下は、文字列「apple’\n’orange’\n’grape」について、’\n'(改行) をデリミタとして文字列を抽出しています。

#!/bin/sh

LF='
'
sample_str="apple${LF}orange${LF}grape"

IFS_backup=$IFS
IFS='
'
set -- $sample_str
IFS=$IFS_backup
word_1=$1
word_2=$2
word_3=$3

echo "word_1 = $word_1"
echo "word_2 = $word_2"
echo "word_3 = $word_3"
***@ubuntu:~/***/test/shell$ 
***@ubuntu:~/***/test/shell$ ./test_if.sh
word_1 = apple
word_2 = orange
word_3 = grape
タイトルとURLをコピーしました