Bash在脚本中执行行的子集

时间:2012-12-26 00:10:32

标签: file bash sh

我有一个包含类似命令的文件:

cat /home/ptay89/test/01.out
cat /home/ptay89/testing/02.out
...

但我只想要其中一些执行。例如,如果我只想看到以1.out结尾的输出文件,我可以这样做:

cat commands | grep 1.out | sh

但是,我为命令文件中的每一行获得以下输出:

: cannot be loaded - no such file or directoryst/01.out

当我直接从文件中复制并传递我想要的命令时,它可以正常工作。有更好的方法吗?

2 个答案:

答案 0 :(得分:3)

您的文件中可能有伪造的回车(在Windows下创建?)。使用tr代替cat删除它们:

tr -d '\015' <commands | grep 1.out | sh

答案 1 :(得分:0)

尝试做

grep -e '^cat.*out' commands | grep 1.out | sh

这应该忽略任何奇怪的角色,只采取你需要的角色。