我有一个文件,其中包含如下命令:
cat /home/ptay89/test/01.out
cat /home/ptay89/testing/02.out
...
但是我只希望其中几个执行。例如,如果我只想看到以1结尾的输出文件。我可以这样做:
cat commands | grep 1.out | sh
但是,对于命令文件中的每一行,我得到以下输出:
: cannot be loaded - no such file or directoryst/01.out
当我直接从文件中复制并传递我想要的命令时,它工作得很好。有更好的方法吗?
您的文件(在Windows下创建的?)中可能有虚假的回车。使用tr
代替cat
来删除它们:
tr -d ' 15' <commands | grep 1.out | sh
试试
grep -e '^cat.*out' commands | grep 1.out | sh
应该忽略任何奇怪的字符,只取你需要的字符。