Ruby 将一个文件的值作为输入传递到另一个文件
我有一个文件,其中以选项卡分隔的方式包含以下信息:Ruby 将一个文件的值作为输入传递到另一个文件,ruby,bash,shell,Ruby,Bash,Shell,我有一个文件,其中以选项卡分隔的方式包含以下信息: abscdfr 2 5678 bgbhjgy 7 8756 ptxfgst 5 6783 让我们把这个文件称为A,它包含2000行 我还有一个用ruby编写的文件B 将这些值作为命令行输入: f_id = ARGV[0] lane = ARGV[1].to_i sample_id = ARGV[2].to_i puts " #{f_id}_#{lane}_#{sample_id}.bw" 我通过在文件A中提供信息,在ru
abscdfr 2 5678
bgbhjgy 7 8756
ptxfgst 5 6783
让我们把这个文件称为A,它包含2000行
我还有一个用ruby编写的文件B
将这些值作为命令行输入:
f_id = ARGV[0]
lane = ARGV[1].to_i
sample_id = ARGV[2].to_i
puts " #{f_id}_#{lane}_#{sample_id}.bw"
我通过在文件A中提供信息,在ruby中执行文件B
./fileB.rb abscdfr 2 5678
我想知道如何以递归方式将文件A的值作为输入传递给文件B
如果是一个值,那很容易,但我对三个值感到困惑
请帮助我用bash或ruby为这两个文件编写一个包装器
谢谢您可以使用一个小bash脚本来循环文件中的每一行,并将内容作为参数输出到另一个脚本 读行时
;做
eval“/fileB.rb$行”
完成
这将对引号中的行进行评估,就像您自己将其输入到shall中一样。您可以使用一个小bash脚本来循环文件中的每一行,并将内容作为参数输出到另一个脚本 读行时
;做
eval“/fileB.rb$行”
完成
这将对引号中的行进行评估,就像您自己将其输入到shall中一样。您可以使用一个小bash脚本来循环文件中的每一行,并将内容作为参数输出到另一个脚本 读行时
;做
eval“/fileB.rb$行”
完成
这将对引号中的行进行评估,就像您自己将其输入到shall中一样。您可以使用一个小bash脚本来循环文件中的每一行,并将内容作为参数输出到另一个脚本 读行时
;做
eval“/fileB.rb$行”
完成
这将对引号中的行进行评估,就像您自己将其输入到shall中一样。以下命令将在
bash
中执行此操作:
while read line; do ./fileB.rb $line; done < fileA
读行时;do./fileB.rb$行;完成
这会将每一行读入
行
。然后为每一行运行/fileB.rb$line
<代码>$line在计算命令行之前被替换,因此每行中的每个单词都作为自己的参数传递,重要的是没有像“$line”
这样的引号read
从STDIN
读取,通常会等待用户输入,但是使用
将fileA
的内容重定向到STDIN
,以便read
从那里获取输入。以下命令将在bash
中执行此任务:
while read line; do ./fileB.rb $line; done < fileA
读行时;do./fileB.rb$行;完成
这会将每一行读入
行
。然后为每一行运行/fileB.rb$line
<代码>$line在计算命令行之前被替换,因此每行中的每个单词都作为自己的参数传递,重要的是没有像“$line”
这样的引号read
从STDIN
读取,通常会等待用户输入,但是使用
将fileA
的内容重定向到STDIN
,以便read
从那里获取输入。以下命令将在bash
中执行此任务:
while read line; do ./fileB.rb $line; done < fileA
读行时;do./fileB.rb$行;完成
这会将每一行读入
行
。然后为每一行运行/fileB.rb$line
<代码>$line在计算命令行之前被替换,因此每行中的每个单词都作为自己的参数传递,重要的是没有像“$line”
这样的引号read
从STDIN
读取,通常会等待用户输入,但是使用
将fileA
的内容重定向到STDIN
,以便read
从那里获取输入。以下命令将在bash
中执行此任务:
while read line; do ./fileB.rb $line; done < fileA
读行时;do./fileB.rb$行;完成
这会将每一行读入
行
。然后为每一行运行/fileB.rb$line
<代码>$line在计算命令行之前被替换,因此每行中的每个单词都作为自己的参数传递,重要的是没有像“$line”
这样的引号read
从STDIN
读取,通常会等待用户输入,但使用
时,fileA
的内容会重定向到STDIN
,以便read
从那里获取其输入。您也可以使用一个行程序:
ruby -ne 'system( "./fileB.rb #{$_}" )' < fileA
ruby-ne'system(“./fileB.rb{$}”)
说明:
允许我们从命令行指定脚本-e
其他有用的标志是-n
(有点像-n
或sed-n
),该标志告诉ruby像while循环一样逐行读取输入或输入文件awk
默认ruby保存存储在$\u变量中的当前行$\u
ruby -ne 'system( "./fileB.rb #{$_}" )' < fileA
ruby-ne'system(“./fileB.rb{$}”)
说明:
允许我们从命令行指定脚本-e
其他有用的标志是-n
(有点像-n
或sed-n
),该标志告诉ruby像while循环一样逐行读取输入或输入文件awk
默认ruby保存存储在$\u变量中的当前行$\u
ruby -ne 'system( "./fileB.rb #{$_}" )' < fileA
ruby-ne'system(“./fileB.rb{$}”)
说明:
允许我们从命令行指定脚本-e
其他有用的标志是-n
(有点像-n
或sed-n
),该标志告诉您awk