私はまだシェルスクリプトの初心者ですが、受信した課金ファイルのバックアップをいくつか作成し、FTPサーバーディレクトリにアップロードします。完了時に、ファイルをアーカイブという新しいディレクトリにアーカイブします。ランダムなファイル名の抽出Bashでの変数出力への出力FTP pushおよびarchiveスクリプト用のスクリプト
請求ファイルは、ランダムなサブストリング(例:XXXXXXが毎日変更される020001.030002.XXXXX.01.2)とともに送信されます。私がする必要があるのは、ファイル名に部分文字列を見つけるためにawkのようなものを使用し、それを変数にコピーして、ファイル名をFTPサーバーにプッシュしてからファイルをアーカイブすることです。次に、変数をFILE = 020001.030002($ VARIABLE).01.2に似たものに配置する必要があります。
私はthis post on stackoverflowに位置していますが、このタスクを達成する方法を理解するのが難しいたびに、ランダムな入力ファイルがあるためです。これがシェルスクリプトを通して行うことができないものなら、このタスクを達成する別の方法(Pythonなど)がありますか?
サンプルファイル名 - 再び彼らはランダムに私の課金サーバによって作成されます(これらのファイルの末尾に拡張子がないことに注意)
- 020001.030002.00320.01.2
- 020001.030002。 07243.01.2
- 020001.030002.12048.01.2
必要な形式がそのまま、このファイル名を残す必要があります
#/bin/bash
FTPU="user" # ftp login name
FTPP="passwd" # ftp password
FTPS="ftp.server.com" # remote ftp server
FTPF="/home/backup/" # remote ftp server directory for $FTPU & $FTPP
LOCALFILE="020001.030002.($INSERT_VARIABLE_HERE).01.2"
ncftpput -m -u $FTPU -p $FTPP $FTPS $FTPF $LOCALFILE
VARIABLE = XXXXX:
代替アプローチ。どちらも5インチです。区切られたセクションには各セクションの番号が付いています。 2-3のサンプルファイル名と、変更されたバージョンに必要な形式を含めるように質問を編集できますか?編集ボックスの上部に書式設定 'ツールバー'があることに注意してください。 {}はフォーマットされ、あなたの行は一緒にマージされません。がんばろう。 – shellter
行き方良い最初の投稿.. 'LOCALFILE =" 020001.030002。($ INSERT_VARIABLE_HERE).01.2 "'が020001.030002.00320.01.2'や '020001.030002.07243.01.2'や....と異なるのはまだ分かりません。 '$ {INSERT_VARIABLE_HERE}'がどのように見えるかをもう一度見てみましょう。あるいは、あなたは '020001.030002。、.01.2'の部分が実際に常に変更されていると言っていますが、あなたはstd part 1,2,4,5に新しいファイル名として保存されているものを減らし、パート3ファイル名を変更するには?がんばろう。 – shellter