2017-04-27 41 views
1

当试图将输出重定向到目录时,出现以下错误。将输出重定向到目录

-bash: ua/: Is a directory 

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

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

您是否试图将您的输出重定向到一个新文件? – KeithC

回答

2

<重定向操作需要一个程序的输出,并把它放在一个文件。自然,目录不能像文件一样拥有“内容”,所以这个操作符对目录没有意义。这就是你得到错误的原因。

我想认为你要做的就是把文件的转换后的内容放到目录中同名的新文件中。同样,重定向操作符没有输入源的概念 - 不知道它最初来自文件,更不用说那个文件被调用了。话虽这么说,只是重定向到该目录内的同名文件:

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

编辑:,您将面临的下一个问题是,你的for file in .没有做你的期望。实际上这个“循环”只能循环一次,用$ file =“。”。您可能想要利用扩展并执行诸如for file in ./*.txt之类的操作来迭代所有文本文件。

+0

谢谢。但是下面的错误仍然存​​在。用于文件的 ; do cut -d'''-f 4 $ file> ua/$ file; done – martinbshp

+0

请参阅编辑@martinbshp – Sinkingpoint

+0

@Sinkingpoint您没有复制得不够好,忘了'ua /'后面的'$ file' –