0

我正在尝试将文件传递到使用 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 中的文本文件,我相信这也是错误的来源。

4

5 回答 5

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
于 2013-02-26T03:07:00.323 回答
3

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

/home/mumps/Medline2012/getDocs.mps < /home/mumps/CS3150/Script/HW1/textfiles/CardioAndPulmonary.txt > /home/mumps/CS3150/Scripts/HW1/textfiles/Titles.txt
于 2013-02-26T03:07:18.043 回答
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
于 2013-02-26T03:07:06.870 回答
1

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

尝试

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

于 2013-02-26T03:05:19.560 回答
1

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

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

于 2013-02-27T22:51:25.837 回答