【问题标题】:.ksh paste user input value into dataset.ksh 将用户输入值粘贴到数据集中
【发布时间】:2016-05-06 15:53:09
【问题描述】:

早上好。

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

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

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

老实说,我什至不知道从哪里开始,所以非常感谢任何输入。对问题中缺少代码表示歉意。如果我能提供更多细节,请告诉我,感谢您的关注。

【问题讨论】:

    标签: unix ksh paste


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-28
      • 1970-01-01
      • 1970-01-01
      • 2017-11-16
      • 2019-07-08
      • 2022-06-23
      • 1970-01-01
      相关资源
      最近更新 更多