使用bash将文件传递到程序中

时间:2013-02-26 03:03:18

标签: bash

我正在尝试将文件传递到用bash进行数据处理的程序中,我想知道我是否有正确的语法

/home/mumps/CS3150/Script/HW1/textfiles/CardioAndPulmonary.txt | /home/mumps/Medline2012/getDocs.mps > /home/mumps/CS3150/Scripts/HW1/textfiles/Titles.txt

我发送的文本文件都是有效且格式正确的,但我只是从getDocs.mps中找回文件错误(我应该注意getDocs确实正常工作,因为这是我的老师一起传递的东西debian vdi和其他人没有问题。)

然而,

getDocs会调用位于Medline2012中的文本文件,这也是错误来自我认为的地方。

5 个答案:

答案 0 :(得分:3)

/home/mumps/Medline2012/getDocs.mps < /home/mumps/CS3150/Script/HW1/textfiles/CardioAndPulmonary.txt > /home/mumps/CS3150/Scripts/HW1/textfiles/Titles.txt

~/Medline2012/getDocs.mps < ~/CS3150/Script/HW1/textfiles/CardioAndPulmonary.txt > ~/CS3150/Scripts/HW1/textfiles/Titles.txt

甚至

< ~/CS3150/Script/HW1/textfiles/CardioAndPulmonary.txt ~/Medline2012/getDocs.mps > ~/CS3150/Scripts/HW1/textfiles/Titles.txt

答案 1 :(得分:3)

或者只是在没有猫的情况下使用bash重定向。

/home/mumps/Medline2012/getDocs.mps < /home/mumps/CS3150/Script/HW1/textfiles/CardioAndPulmonary.txt > /home/mumps/CS3150/Scripts/HW1/textfiles/Titles.txt

答案 2 :(得分:2)

您需要cat您的.txt文件,通过管道将其内容传递给脚本,

cat /home/mumps/CS3150/Script/HW1/textfiles/CardioAndPulmonary.txt | /home/mumps/Medline2012/getDocs.mps > output

或者,根据脚本中的内容,它可能需要作为命令行参数,即

 /home/mumps/Medline2012/getDocs.mps /home/mumps/CS3150/Script/HW1/textfiles/CardioAndPulmonary.txt > output

答案 3 :(得分:1)

您正在尝试执行数据文件并将结果提供给您的脚本。

cat /home/mumps/CS3150/Script/HW1/textfiles/CardioAndPulmonary.txt | /home/mumps/Medline2012/getDocs.mps > /home/mumps/CS3150/Scripts/HW1/textfiles/Titles.txt

答案 4 :(得分:1)

如果在执行getDocs.mps之前仍然无法在Medline2012上执行cd。原因是当您访问getDoc.mps时,它会调用以打开osu.medline数据库。这将导致“文件错误”,因为getDoc.mps中的调用不包括osu.medline的路径。

编辑:很多人告诉你,你需要“猫”这是错误的。 getDoc.mps有自己的打印。如果没有,则不会为您打印“文件错误”。我也看到你说循环后它正在破碎。您是否进行了测试以确保它不在文件的开头。您可以通过在第一次打印“文件错误”中的引号之间添加和指示单词来检查。您可以将其更改为“文件错误1”。我意识到你可能知道我只是想彻底。