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

.ksh paste user input value into dataset

早上好。

第一件事:我对 Unix 中的 shell 脚本几乎一无所知,所以请原谅我的天真。

这是我想要做的,我 认为 它相对简单:我想创建一个 .ksh 文件来做两件事:1) 采取 user-provided 数值(参数)并将其粘贴到数据集末尾的新列(一个单独的 .txt 文件),以及 2) 执行不同的 .ksh 脚本。

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

老实说,我什至不确定从哪里开始,所以任何意见都将不胜感激。对问题中缺少代码表示歉意。如果我可以提供更详细的信息,请告诉我,感谢您的观看。

我找到了答案:"nawk" 命令。

TheNumber=
PE_Infile=

以上变量分别对应命令行的第三个和第一个参数。 "PE_Infile" 表示要操作的文件(具有完整路径),"TheNumber" 表示填充最后一列的数字。那么:

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

在这里,-F"|"指定分隔符,-v 指定要添加的内容。由于我不知道的原因,必须声明一个新变量 (TheNewNumber) 才能在 print 语句中执行算术运算。 print $0 表示将打印整行,同时添加“|”符号和命令行输入的值除以 10000 到最后。最后,我们有输入文件和输出文件(Temp_PE_Input.txt,在 $Binfolder 变量表示的路径中)。

运行 之后所需的脚本非常简单,只需输入脚本名称(带路径),然后根据需要添加相应的参数($2 $3),每个参数由 space 分隔。