Mac终端如何提取带文件名的.py后缀完整内容?
提取tampers.txt中带.py后缀的完整文件名并保存
问题根源
你之前的命令存在两个关键问题:
cat tampers.txt | grep *.py里的*.py会被Shell优先解析成当前目录下的.py文件列表,根本不是作为匹配规则去扫描文本内容。grep .py tampers.txt里的.是正则通配符(匹配任意单个字符),且默认输出整行,没有精准提取出完整的文件名部分。
解决命令
直接用带正则匹配的grep命令,精准提取所有带名称的.py文件字符串,并保存到新文件:
grep -Eo '[A-Za-z0-9_.-]+\.py' tampers.txt > extracted_py_files.txt
参数解释
-E:启用扩展正则表达式,让匹配规则更灵活-o:只输出文本中匹配到的部分(而非整行),刚好满足你提取完整文件名的需求[A-Za-z0-9_.-]+:匹配文件名的合法字符(字母、数字、下划线、点、连字符),+确保前面至少有一个字符,避免只提取出.py\.py:转义.(正则里.是通配符),精准匹配实际的.py后缀> extracted_py_files.txt:把提取结果重定向保存到目标文件中
特殊情况处理
如果文本里存在带空格的.py文件名,只需在正则字符集里加入空格即可:
grep -Eo '[A-Za-z0-9_.- ]+\.py' tampers.txt > extracted_py_files.txt
内容的提问来源于stack exchange,提问作者elecT
相关产品推荐
相关产品推荐

