Linux一括処理ファイルスクリプト

6708 ワード

Linux shell文字列の切り取りと接合
Linuxの文字列切り取りが役立ちます.8つの方法があります.
変数var=があると仮定http://www.linuxidc.com/123.htm 
1#を切り取り、左の文字を削除し、右の文字を保持します. 
echo ${var#*//}
ここでvarは変数名、#番号は演算子、*//は左から最初の//番号と左のすべての文字を削除することを表します
http://を削除
結果は:www.linuxidc.com/123.htm
2###は切り取って、左の文字を削除して、右の文字を保留します.
echo ${var##*/}
##*/は左から最後の(右端)1文字と左のすべての文字を削除することを表します
削除http://www.linuxidc.com/         
結果は123.htm
 
3%カット、右文字の削除、左文字の保持
echo ${var%/*}
%/*は、右から1番目の/番号と右側の文字を削除することを示します.
結果は次のとおりです.http://www.linuxidc.com
4%%カット、右文字の削除、左文字の保持
echo ${var%%/*}
%%/*は右から、最後の(一番左)文字と右の文字を削除します.
結果は:http:
5左から数番目の文字、および文字数
echo ${var:0:5}
0は左の最初の文字から始まり、5は文字の合計数を表します.
結果は:http:
6左から何番目かの文字から、最後まで.
echo ${var:7}
そのうちの7は、左の8文字目から終わりまでを表します.
結果は:www.linuxidc.com/123.htm
7右から何番目の文字から、および文字の個数
echo ${var:0-7:3}
0~7は右から7文字目、3は文字数を表します.
結果は:123
8右から数番目の文字から始まり、最後まで.
echo ${var:0-7}
右から7番目の文字から、最後までを表します.
結果は:123.htm
 
 
注意:(左の最初の文字は0、右の最初の文字は0-1)
二Linux Shellスクリプトの文字列の結合方法
変数の後に文字を追加する場合は、$value 1=home$value 2=${value 1}"="echo$value 2が追加する文字列変数を{}追加し、$を外に置く必要があります.このように出力された結果,home=,すなわち接続に成功した.また、[root@localhost sh]# var1=/etc/[root@localhost sh]# var2=yum.repos.d/[root@localhost sh]# var3=${var1}${var2}[root@localhost sh]# echo $var3/etc/yum.repos.d/
ファイルが存在するかどうかを判断するshellスクリプトコード
#!/bin/sh

#         

# link:www.jb51.net

# date2013/2/28



myPath="/var/log/httpd/"

myFile="/var /log/httpd/access.log"



#    -x     $myPath               

if [ ! -x "$myPath"]; then

  mkdir "$myPath"

fi

#    -d     $myPath    

if [ ! -d "$myPath"]; then

 mkdir "$myPath"

fi



#    -f    $myFile    

if [ ! -f "$myFile" ]; then

 touch "$myFile"

fi

#       -n,-n             

if [ ! -n "$myVar" ]; then

 echo "$myVar is empty"

 exit 0

fi



#           

if [ "$var1" = "$var2" ]; then

 echo '$var1 eq $var2'

else

 echo '$var1 not eq $var2'

fi

インスタンス
手順:
1)Manesh_の遍歴fastaフォルダ
2)フォルダの.fastaファイル名を.disoファイルに変数を付与
3)これを判断する.disoファイルはManesh_disoディレクトリに存在するかどうか
存在しない場合は、次のコマンドを実行します.
#!/bin/bash



fasta_files=`ls /ifs/home/fanchao/Manesh_fasta`

for filename in $fasta_files

do

diso_file="${filename%.*}".diso""

if [ ! -f "/ifs/home/fanchao/Manesh_diso/$diso_file" ]; then

/ifs/home/fanchao/disopred2.43/disopred/rundisopred  /ifs/home/fanchao/Manesh_fasta/$filename

fi

done

bash変数の設定
Linux批量处理文件脚本