2015-12-29 86 views
0

使用系統試圖獲得更多熟悉AWK AWK援助,並正在使用系統命令SCP的跨服務器一堆文件。需要在Solaris中

所以,我想這一點,但它不工作。不錯,只是沒有做任何事情。

ls *.dmp | awk ' {system("nohup scp "$1" [email protected]:/server/file/path/ &")}'

然而,這個工程

ls *.dmp | awk ' {print "nohup scp "$1" [email protected]:/server/file/path/ &"}' > scp.sh && chmod +x scp.sh && ./scp.sh

目標只是試圖執行了awk回報的一切。

+0

awk不適合在這裏工作。你應該只使用shell for for循環。 –

+1

當我聽到「awk ... Solaris」的時候,我想到的第一件事是:你正在使用哪種awk?確保它是/ usr/xpg4/bin/awk。 –

+1

只需'nohup scp * .dmp user @ server:/ path /&'就足夠了。 –

回答

3

Solaris 10的/usr/bin/awk沒有system函數,並且在調用未定義的函數時不會引發錯誤;函數的返回值無論其參數是什麼。請改用/usr/xpg4/bin/awknawk

由於格倫和安德魯指出,如果你需要做的是運行shell命令多次使用一個參數,每次變化,這可以在shell本身做沒有得到AWK參與。

for f in *.dmp 
do 
    nohup scp "$f" [email protected]:/server/file/path/ & 
done