我正在尝试将文件传递到用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中的文本文件,这也是错误来自我认为的地方。
答案 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”。我意识到你可能知道我只是想彻底。