说我有一堆文件:
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文件
答案 0 :(得分:1)
我想你想要:
for file in *.log ; do
echo "${file%.*}"
done > output.txt
${file%.*}
是所谓的parameter expansion。在这种情况下,它会删除点的最短匹配,然后从$file
的末尾删除任意字符。这将有效地删除文件扩展名。