我在 filenames.txt 中有一个文件名列表,其中包含两个或多个文件,日期如下:foo_19990101_bar001.zipfoo_19990101_bar002.zipfoo_20000303_bar001.zipfoo_20000303_bar002.zipfoo_20000303_bar003.zipfoo_20021111_bar001.zipfoo_20021111_bar002.zip...我想创建单独的文本文件,其中包含单个日期的文件名,例如 19990101.txt 将包含:foo_19990101_bar001.zipfoo_19990101_bar002.zip谢谢您的帮助!
2 回答
婷婷同学_
TA贡献1844条经验 获得超8个赞
你可以试试这个:
#!/bin/bash
while read -r line; do
date="${line:4:8}"
echo "$line" >> "${date}.txt"
done < filenames.txt
ibeautiful
TA贡献1993条经验 获得超6个赞
这将创建名称作为时间戳的新文件。
from collections import defaultdict
with open("filenames.txt") as fp:
file_names = fp.read().split()
files_dict = defaultdict(list)
for name in file_names:
timestamp = name.split("_", 2)[1]
files_dict[timestamp].append(name)
for key, value in files_dict.items():
with open(key, "w") as fp:
fp.write("\n".join(value))
添加回答
举报
0/150
提交
取消
