我仍然在shell腳本一個新手,並想使我收到賬單文件的一些備份,然後上傳這些FTP服務器目錄,完成後將該文件歸檔到一個名爲歸檔的新目錄中。這裏是什麼絆倒了我,讓提取任意文件名的子串在bash腳本變量輸出,用於FTP推送和歸檔腳本
計費文件與隨機子路線發送包含(020001.030002.XXXXX.01.2當然其中XXXXXX是每天更換)。我需要做的就是使用類似awk的方法找到文件名中的子字符串,將其複製到一個變量中,以便我可以使用它將文件名推送到FTP服務器,然後對文件進行歸檔。然後我需要將變量放置在類似於FILE = 020001.030002($ VARIABLE).01.2的東西中。
我位於this post on stackoverflow這是性質相似,但因爲我有一個隨機輸入文件,每次我都有困難如何完成這項任務。如果這不是通過shell腳本可以完成的事情,還有另一種方式(Python等)來完成這項任務嗎?
樣品文件名 - 他們再次隨機我的計費服務器創建:(注意:沒有這些文件的結尾有分機)
- 020001.030002.00320.01.2
- 020001.030002。 07243.01.2
- 020001.030002.12048.01.2
要求的格式應該把這個文件名不變被放置在一個FTP腳本用於上傳如:
#/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
目前還不清楚(我的)原始文件名,與XXXXX是如何從FILE = ... $ {變量} ...有什麼不同,當變量= XXXXX 。兩者都有5'。'在每個部分用數字分隔的部分。你可以編輯你的問題,包括2-3個樣本文件名,以及所需格式的更改版本?請注意編輯框頂部的格式「工具欄」。 {}將會格式化,以便您的線條不會合並在一起。祝你好運。 – shellter 2012-03-21 19:26:28
到達那裏!良好的第一篇文章..還是不明白怎麼'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部分1,2,4,5,只有捕獲的是第3部分改變文件名?祝你好運。 – shellter 2012-03-21 20:13:01