2015-08-20 19 views
3

我想提交類似下面的東西,這樣我可以在一個目錄到另一個目錄複製所有數據集,但有一個標識符ID1前綴:在SAS`X`命令中,如何傳遞迴車符?

for name in *.sas7bdat 
do 
     cp "$name" "ID1$name" 
done 

我已經用很多的變化,但沒有運氣到目前爲止已經試過 - 幾個例子:

x 'for name in *.sas7bdat' ; 
x 'do'; 
x 'cp "$name" "ID1$name"' ; 
x 'done' ; 

x 'for name in *.sas7bdat' 'OD'x 'do' 'OD'x 'cp "$name" "ID1$name"' 'OD'x 'done' ; 
x 'for name in *.sas7bdat'  'do'  'cp "$name" "ID1$name"' '  'done' ; 
x 'for name in *.sas7bdat' \n 'do' \n 'cp "$name" "ID1$name"' \n 'done' ; 
+0

什麼是腳本語言?也許更容易將該腳本寫入一個文件,然後使用X語句來調用它?你在shell提示符下輸入什麼命令來使這個循環起作用?如果你可以在shell提示符下鍵入它,應該能夠得到x命令來執行它。 – Quentin

回答

3

你可以只寫(對... ...做...做)的bash腳本在一行,並在其上運行x命令。

x 'for name in *.sas7bdat; do; cp "$name" "ID1$name"; done'; 

另一種選擇是整個for循環存儲在單個文件中,確保其運行(chmod + X文件名),然後執行該文件作爲使用x命令的腳本。

這裏有幾個bash示例 - http://www.cyberciti.biz/faq/linux-unix-bash-for-loop-one-line-command/

+2

另請參閱[SAS文檔](http://support.sas.com/documentation/cdl/en/hostunx/61879/HTML/default/viewer.htm#a000290413.htm),其中具體顯示了使用'; '分開命令。 – Joe