.ksh将用户输入值粘贴到数据集中

时间:2016-05-06 15:53:10

标签: unix ksh paste

早上好。

首先要做的事情:我对Unix中的shell脚本几乎一无所知,所以请原谅我的天真。

这就是我想要做的事情,而我认为它相对简单:我想创建一个.ksh文件来做两件事:1)获取用户提供的数值(参数)并将其粘贴到数据集末尾的新列(单独的.txt文件)中,2)执行不同的.ksh脚本。

我设想在Unix提示符下调用此脚本,之后添加输入值。类似于“paste_and_run.ksh 58”,其中58将填充现有数据集中的新的最终(未加工)列(具体来说,它将填充第77列)。

说实话,我甚至不确定从哪里开始,所以任何输入都会非常感激。对问题中缺乏代码表示歉意。如果我能提供更多详细信息,请告诉我,谢谢你们一起来看看。

1 个答案:

答案 0 :(得分: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指示要添加的内容。由于我自己不了解的原因,在print语句中执行算术操作需要声明一个新的变量(TheNewNumber)。 print $ 0意味着打印整行,同时加上“|”符号和命令行输入的值除以10000到结尾。最后,我们有输入文件和输出文件(Temp_PE_Input.txt,在$ Binfolder变量表示的路径中)。

之后运行所需的脚本就像输入脚本名称(带路径)一样简单,然后根据需要添加相应的参数($ 2 $ 3),每个参数用空格分隔。