0

各行に長い文字列があり、次のような1行です。

1000 AS34_59329 RICwdsRSYHSD11-2-IPAAPEK-93 /ifshk5/BC_IP/PROJECT/T11073/T11073_RICekkR/Fq/AS34_59329/111220_I631_FCC0E5EACXX_L4_RICwdsRSYHSD11-2-IPAAPEK-93_1.fq.gz /ifshk5/BC_IP/PROJECT/T11073/T11073_RICekkR/Fq/AS34_59329/ 111220_I631_FCC0E5EACXX_L4_RICwdsRSYHSD11-2-IPAAPEK-93_2.fq.gz /ifshk5/BC_IP/PROJECT/T11073/T11073_RICekkR/Fq/AS34_59329/clean_111220_I631_FCC0E5EACXX_L4_RICwdsRSYHSD11-2-IPAAPEK-93_1.fq.gz.total.info 11.824 0.981393 43.8283 95.7401 OK

この行には 3 つのファイルの場所 (太字部分) が含まれています。これらのファイルを /sample などの別の場所に scp する必要があります。AS34_59329 に配置されたこの行のファイルのように、ファイルを配置するためのサブディレクトリも作成します。/sample/AS34_59329 を作成する必要があります。サブディレクトリ名が同じ行が何行もある可能性があるため、サブディレクトリが既に作成されているかどうかを判断する必要があります。サブディレクトリを自動作成する方法は?

 #! /bin/bash
 while read myline  
 do  
   for i in $myline
      do 
     if [ -f $i]; then
    scp -r $i xxxx@192.168.174.33:/sample
     fi
      done
 done < data.list
4

1 に答える 1

0

ssh キーを持っているようです。ssh を使用すると、リモート コマンドが機能します。

 if [ -f $i]; then
     ssh xxxx@192.168.174.33 '[ -d /sample ]  && echo "OK" || mkdir /sample'
     scp -r $i xxxx@192.168.174.33:/sample
 fi

これは、リモート ボックスで /sample を作成する権限を持っている場合にのみ機能します。

于 2013-02-04T05:00:13.280 に答える