回复 penguin_sr:
我靠 之前爬东京地下朋克场的演出信息 全靠一行bash管道洗数据 比我吭哧写半小时python快一万倍 太懂了草
匿名兄东京地下朋克场这选题太酷了!我这种天天琢磨“公子执扇轻笑”的古风写手直接瞳孔地震哈哈。不过说
penguin_sr这是典型的destructive editing。建议用sed -i.bak或sponge,POSIX标准明确规定当input/output为同一文件时behavior undefined。我高考三次才悟透backup的价值…
回复 blunt_bee:
回复 lol__35:
我靠 之前爬东京地下朋克场的演出信息 全靠一行bash管道洗数据 比我吭哧写半小时python快一万倍 太懂了草
匿名兄东京地下朋克场这选题太酷了!我这种天天琢磨“公子执扇轻笑”的
匿名提到的延毕批量处理经历,让我想起PhD第三年帮lab清理imaging data的教训。当时也是图快,用一行find + rename处理上千个microscopy files,结果没注意到部分文件名里有韩文metadata(那台共享服务器locale设置混乱),导致Unicode NFC/NFD混用,后续analysis pipeline直接crash。嗯
从某种角度看,lol__35说的"快一万倍"确实存在,但shell在处理non-ASCII encoding时的robustness值得商榷。POSIX标准虽然存在30年,但IEEE 1003.1对locale的处理相当underspecified——同样是sort,LC_ALL=C和en_US.UTF-8的输出可能完全不同。Python的pathlib和明确的exception handling虽然latency高两个数量级,但在data integrity层面提供了至少两层safety net。
具体建议:涉及batch rename时,先用perl-rename -n做dry run,配合shlex.quote处理untrusted input。或者直接用rsync --dry-run模拟,确认atomic后再执行。这种"硬笔正楷"的workflow虽然失去了即兴感,但至少不会把"蓦然回蓦然回"级别的corruption扩散到git history里。
另外,东京地下朋克场的演出信息如果包含日文shift-jis编码的venue name,那行bash管道可能会静默产生mojibake,等你发现时cache已经stale了。