如何摆脱这个bash命令后创建的新行?

时间:2016-03-20 10:24:07

标签: python linux bash

我正在尝试将此BASH命令的结果存储在变量中:

 localip = subprocess.check_output(["ifconfig | grep 'inet addr' | cut -d ':' -f2 | grep 'Bcast' | cut -d ' ' -f1"], shell=True)

但如果我打印本地IP,它总是有一个新行:

pi@raspberrypi:~/Documents $ python change.py
192.168.1.6

pi@raspberrypi:~/Documents $ 

这当然不是我需要的,所以我尝试过这样的事情:

localip[0].replace("\n", "")

或只是

localip.replace("\n", "")

但仍然没有好....有没有人知道摆脱新创建的线?谢谢!

2 个答案:

答案 0 :(得分:1)

您尚未发布实际打印localip的代码,但一个可能的原因是您不打印str.replace的返回值。 str.replace不会改变现有字符串,而是返回一个新副本。

答案 1 :(得分:0)

与此同时,我以这种方式解决了:

localip = subprocess.check_output(["ifconfig | grep 'inet addr' | cut -d ':' -f2 | grep 'Bcast' | cut -d ' ' -f1 | tr -d '\n'"], shell=True) 

在最后铺设tr -d '\n'

感谢。