如何循环遍历文件并将其内容输出到新目录中不具有相同扩展名的文件?

如何循环遍历文件并将其内容输出到新目录中不具有相同扩展名的文件?

这是一个非常基本的问题,但我对此很陌生。

示例:在我的当前目录中,我有包含 file1.txt、file2.txt、file3.txt 的文件夹 Looptest

我希望将它们的内容输出到文件夹looptest_out到名为file1.txt.test.txt等的新文件中(假设我不尝试删除扩展名)

所以我尝试了代码:

for FILE in looptest/*; do cat $FILE > looptest_out/"$FILE.test.txt"; done

我收到以下错误:

testing_loops: line 17: looptest_out/looptest/file1.txt.test.txt: No such file or directory
testing_loops: line 17: looptest_out/looptest/file2.txt.test.txt: No such file or directory
testing_loops: line 17: looptest_out/looptest/file3.txt.test.txt: No such file or directory

我认为问题在于 $FILE 保留文件所在目录的扩展名,因此它最终会查找不存在的目录 Looptest_out/looptest (这两个文件夹都在我的当前目录中)

所以基本上,我只需要获取不带目录的文件名,并将其用作文件新名称的主干。我还想知道如果可能的话如何从末尾删除“.txt”。我尝试用"${file##*/}"and 做事,"${file%.txt}".test.txt但最终只是给出了一个空白名称。

帮助将不胜感激!

相关内容