将输出重定向到目录

时间:2017-04-27 06:58:15

标签: bash shell

尝试将输出重定向到目录时,我收到以下错误。

-bash: ua/: Is a directory

我知道这是一个目录。如何将输出重定向到它?以下是我正在尝试的内容。谢谢。

for file in .; do cut -d '"' -f 4 $file > ua/; done

1 个答案:

答案 0 :(得分:2)

<重定向运算符获取程序的输出并将其放在文件中。当然,目录不能像文件一样具有“内容”,因此该操作符对目录没有意义。这就是你得到错误的原因。

我想要做的是你想要做的是将文件的转换内容放入目录中的同名新文件中。同样,重定向操作符没有输入源的概念 - 不知道最初来自文件,更不用说调用该文件了。话虽如此,只需重定向到目录中的同名文件:

for file in ./*; do cut -d '"' -f 4 $file > ua/$file; done

修改:您面临的下一个问题是您的for file in .没有达到预期效果。事实上,这个“循环”只循环一次,$ file =“。”。您可能希望利用扩展并执行类似for file in ./*.txt之类的操作来迭代所有文本文件。