我需要从一些文本文件中选择一些数字.我可以用grep挑选出我需要的行,但不知道如何从行中提取数字.一位同事告诉我如何使用perl从bash执行此操作:
cat results.txt | perl -pe 's/.+(\d\.\d+)\.\n/\1 /'
Run Code Online (Sandbox Code Playgroud)
但是,我通常使用Python编写代码,而不是Perl代码.所以我的问题是,我可以用同样的方式使用Python吗?也就是说,我可以将bash中的内容传递给Python,然后将结果直接输入到stdout吗?......如果这是有道理的.或者Perl在这种情况下更方便吗?
Amb*_*ber 11
是的,您可以从命令行使用Python.python -c <stuff>将<stuff>作为Python代码运行.例:
python -c "import sys; print sys.path"
Run Code Online (Sandbox Code Playgroud)
没有直接等同-p于Perl 的选项(自动输入/输出逐行处理),但这主要是因为Python不使用与$_Perl 相同的概念- 在Python中,所有输入并输出手动完成(通过raw_input()/ input(),和print/ print()).
对于您的特定示例:
cat results.txt | python -c "import re, sys; print ''.join(re.sub(r'.+(\d\.\d+)\.\n', r'\1 ', line) for line in sys.stdin)"
Run Code Online (Sandbox Code Playgroud)
(显然有点笨拙.在实际的Python中编写脚本可能会更好.)
| 归档时间: |
|
| 查看次数: |
1817 次 |
| 最近记录: |