2013/07/10

linux bash substr

★cut
-c 切り出す文字数を指定する1,3 1-3
-d 区切り文字を指定する(デフォルトはタブ)-d ""
-f 表示する項目を指定。区切った順に左から1,2,3... -f1-3
-s 列の区切りのない行を無視する
・echo 1234567890 | cut -c 3-7
=>34567
・echo "12345" | cut -c1,3
=>13
・ echo "field1 field2 field3 field4 field5" | cut -d ' ' -f1,3
field1 field3


str="1234567890"
echo ${str:2:5}
最後から3文字目を取り出す
echo ${STRING: -3:1}


echo "abcdefg.tar.gz" | sed -e "s/.tar.gz//"
=>abcdefgecho $result


FILE=test.tar.gz
NAME=${FILE%.tar.gz}
=>test

FILE=test.tar.gz
NAME1=${FILE%.*}
=>test.tar
NAME2=${FILE%.*.*}
=>test

FILE=test.tar.gz
NAME1=${FILE#*.}
=>tar.gz
NAME2=${FILE#*.*.}
=>gz

FILE=/tmp/test1/test2/test.tar.gz
NAME=${FILE##*/}
=>test.tar.gz

 ★bashname
意外に使われなかった。。
パス名からディレクトリ部分を取りのぞいた名前を表示する.
指定があれば, 末尾の拡張子も取り除く.

      --help     この使い方を表示して終了
      --version  バージョン情報を表示して終了

Examples:
  basename /usr/bin/sort       Output "sort".
  basename include/stdio.h .h  Output "stdio".