Python、管道和-";命令行中的选项
我隐约记得在Python中可以做这样的事情:Python、管道和-";命令行中的选项,python,command-line,pipe,Python,Command Line,Pipe,我隐约记得在Python中可以做这样的事情: cat foo | python -c "<some python code>" | grep blah | ... catfoo | python-c”“| grep blah |。。。 出于某种原因,我不知道如何实际使用它在输入文件的每一行上运行Python代码。例如,假设我想将原始文件中单词“apple”的每个实例都改为“orange”;我该怎么做呢?从sys.stdin读取数据,或者只使用“sed”。如果您使用的是Bash
cat foo | python -c "<some python code>" | grep blah | ...
catfoo | python-c”“| grep blah |。。。
出于某种原因,我不知道如何实际使用它在输入文件的每一行上运行Python代码。例如,假设我想将原始文件中单词“apple”的每个实例都改为“orange”;我该怎么做呢?从sys.stdin读取数据,或者只使用“sed”。如果您使用的是Bash shell
while read -r line
do
line=${line//apple/orange/}
echo "$line"
done < file > tempfile && mv tempfile file
读取时-r行
做
line=${line//apple/orange/}
回音“$line”
完成tempfile&&mv tempfile文件
我不认为这有多大帮助,但这里有一句话:
cat file | grep apple | python -c "for line in __import__('sys').stdin: print line.replace(\"apple\", \"orange\"),"
还有比sed更好的方法,叫做sed。工作原理如下:
pip install pyp
echo "apple, banana" | pyp "p.replace('apple', 'orange')"