0

我有一个文件,其中包含类似于以下命令:

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

当我直接从文件中复制并粘贴我想要的命令时,它工作正常。有没有更好的方法来做到这一点?

4

2 回答 2

2

您的文件中可能有虚假的回车符(在 Windows 下创建?)。使用tr而不是cat删除它们:

tr -d '\015' <commands | grep 1.out | sh
于 2012-12-26T00:23:11.780 回答
0

尝试做一个

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

那应该忽略任何奇怪的字符,只取你需要的字符。

于 2012-12-26T00:35:53.807 回答