Linux シェル,長いパスを、指定した文字数に省略して出力する

スポンサーリンク

鍛錬 208

Linux シェルスクリプト,長いパスを、指定した文字数に省略して出力する

シェルスクリプト

以下は、長いパスを指定した文字数に省略して出力するシェルスクリプト omission_path.sh です。

シェルスクリプト中で使用している colrm については、別の記事にて記述しています。

文字列の一部を削除する
 

#!/bin/sh

PATH_STR="/home/ABC/DEF/GHI/JKL/MNO/sample.txt" # パス
MAX_LEN=16                                      # 省略後のパス長を指定

# パスの長さを取得
len=${#PATH_STR}

# 指定したパスの長さ以下の場合
if [ $len -le $MAX_LEN ]; then
	exit 0
fi

omission_num=$((len - MAX_LEN))

# パスを編集
tmp=$(echo $PATH_STR | colrm 1 $omission_num)

comma="..."
edit_path="$comma$tmp"

echo "before -> $PATH_STR"
echo "after  -> $edit_path"

実行結果

***@ubuntu:~/***/test/shell$ 
***@ubuntu:~/***/test/shell$ ./omission_path.sh
before -> /home/ABC/DEF/GHI/JKL/MNO/sample.txt
after  -> ...L/MNO/sample.txt

 
上記に示した通り、パスの一部が省略されていることが分かります。

タイトルとURLをコピーしました