假设我有一堆文件:
blar23123.log
blar23131.log
blar11111.txt
blar55532.log
我想把所有以.log结尾的都输出到一个没有.log的文本文件中。
预期输出(文本文件):
blar23123
blar23131
blar55532
我有一个很糟糕的方法来做这件事,我创建了一个没有 .log 的新的单独文件。但是当我处理 100000 个文件的数据集时,这可能是一项详尽的工作并且需要一段时间。
我一直在做什么:
for file in *.log; do cp -- "$file" "${file%%.log}"; done
然后我一直在列出它们,然后将它们附加到一个 txt 文件中
最佳答案
我猜你想要:
for file in *.log ; do
echo "${file%.*}"
done > output.txt
${file%.*}
是所谓的 parameter expansion .在这种情况下,它会从 $file
的末尾删除一个点后跟任意字符的最短匹配项。这将有效地删除文件扩展名。
关于linux - 将以 .log 结尾的文件附加到没有 .log 的 txt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38436638/