2016-05-06 12 views
0

早上好。首先要做的事情:我幾乎不知道Unix中的shell腳本,所以請原諒我的天真。.ksh將用戶輸入值粘貼到數據集中

這是我想要做的,我認爲它相對簡單:我想創建一個.ksh文件來做兩件事:1)獲取用戶提供的數值(參數)並粘貼它放到數據集(一個單獨的.txt文件)末尾的新列中,並且2)執行一個不同的.ksh腳本。

我設想在Unix提示符下調用這個腳本,並在其後添加輸入值。例如,「paste_and_run.ksh 58」,其中58將在現有數據集中填充新的最終(未預留)列(具體地,它將填充第77列)。

坦率地說,我甚至不知道從哪裏開始,所以任何輸入都會非常感激。對於問題中缺少代碼抱歉。請讓我知道,如果我可以提供更多的細節,並感謝您看看。

回答

0

我找到了答案:「nawk」命令。

TheNumber=$3 
PE_Infile=$1 

其中上述變量分別對應於命令行中的第三個參數和第一個參數。 「PE_Infile」表示要操縱的文件(具有完整路徑),「TheNumber」表示要填充最後一列的編號。然後:

nawk -F"|" -v TheNewNumber=$TheNumber '{print $0 "|" TheNewNumber/10000}' $PE_Infile > $BinFolder/Temp_Input.txt 

這裏,-F「|」指示分隔符,-v指示要添加的內容。由於我自己不知道的原因,爲了在打印語句中執行算術操作,需要聲明一個新變量(TheNeNNumber)。打印$ 0意味着整行將被打印,同時添加「|」符號和命令行輸入的值除以10000來結束。最後,我們有輸入文件和一個輸出文件(Temp_PE_Input.txt,在由$ Binfolder變量表示的路徑中)。

後來運行所需的腳本是作爲打字腳本名稱(與路徑),和將對應的參數($ 2 $ 3)之後根據需要,每個由空格分隔一樣簡單。