Python、管道与命令行中的“-c”选项

10 投票
4 回答
3135 浏览
提问于 2025-04-16 16:09

我模糊记得在Python中可以做类似的事情:

cat foo | python -c "<some python code>" | grep blah | ... 

但我现在有点想不起来怎么用这个在输入文件的每一行上运行Python代码。比如说,如果我想把原文件中每个“apple”这个词都改成“orange”,我该怎么做呢?

4 个回答

0

从系统标准输入读取你的数据,或者直接使用'sed'命令。

4

还有一种比sed更好的方法,叫做 pyp。它的工作方式是这样的:

pip install pyp
echo "apple, banana" | pyp "p.replace('apple', 'orange')"
10

我觉得这个东西用一次就够了,但这里有个一行代码:

cat file | grep apple | python -c "for line in __import__('sys').stdin: print line.replace(\"apple\", \"orange\"),"

撰写回答