在我的build.xml文件中,我想在shell脚本中使用正则表达式来提取时间d hr d min d sec格式.并且时间不会总是处于相同的模式,例如:
1 sec
1 min
2 min 3 sec
4 hr 5 min
Run Code Online (Sandbox Code Playgroud)
现在我想使用正则表达式从我的文件中获取时间值.在xml文件中,它将在value标记中:
<value>1 hr 54 min</value>
Run Code Online (Sandbox Code Playgroud)
我曾经使用 cat build.xml | grep -oP '(?<=<value>).*sec?(?=</value>)'
但在这种情况下它只会打印几秒钟或同样我只能打印最少.
请帮助我这个正则表达式.
我有一个列表和一本字典:
list1 = ["a", "b", "c", "d"]
dict1 =
{
"a": 4,
"b": 3,
"c": 5,
"d": 9,
"e": 2,
"f": 8
}
Run Code Online (Sandbox Code Playgroud)
我想要做的是根据dict1中的相应值对list1进行排序.
对于上面的例子,我希望列表成为["b", "a", "c", "d"],根据它们的值进行排序.
我知道它应该是......
list2 = sorted(list1, key=dict1[x])
Run Code Online (Sandbox Code Playgroud)
但我被卡住了:((
任何帮助将非常感激
我使用下面的代码在远程机器上执行命令,
import paramiko
import os
dssh = paramiko.SSHClient()
dssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
dssh.connect('192.168.1.5', username='root', password='asdfghhh')
import os
stdin, stdout, stderr = dssh.exec_command('ls')
print stdout.read()
stdin, stdout, stderr = dssh.exec_command('ifconfig')
print stdout.read()
stdin, stdout, stderr = dssh.exec_command('ps')
print stdout.read()
dssh.close()
Run Code Online (Sandbox Code Playgroud)
当我执行程序时,它能够显示ls和ps以及其他命令输出.但是没有观察到ifconfig o/p.
任何想法如何解决这个问题?提前致谢...
我编写了一个shell脚本来获取任何列.该脚本是:
#!/bin/sh
awk '{print $c}' c=${1:-1}
Run Code Online (Sandbox Code Playgroud)
所以我可以称之为
ls -l | column 2
Run Code Online (Sandbox Code Playgroud)
但是我如何为多列实现它?说,我想要的东西:
ls -l | column 2 3
Run Code Online (Sandbox Code Playgroud) 我有一个名为的列Cities,此列的数据如下:
City 1
CITY 1
CITY 1
Run Code Online (Sandbox Code Playgroud)
我想只选择CITY(大写)
这不是在做这个工作:
SELECT * FROM Location
WHERE Cities LIKE 'CITY 1'
Run Code Online (Sandbox Code Playgroud)
这给了我所有的CITY 1包括City 1
我的程序的一部分生成一个字符串,例如D D或N D等。我想用相关字符(在代码中的其他地方指定)替换某个字符的第一个实例。所以如果字符串是D D我希望能够得到0 D
我尝试使用该.replace()函数,但这给了我0 0因为它替换了该字符的所有实例。
有关如何实现这一目标的任何提示?
我有一组看起来像这样的数据:
OutletCntrTemp|25degreesC|ok
InletTemp|17degreesC|ok
PCHTemp|46degreesC|ok
P0ThermMargin|-57degreesC|ok
P1ThermMargin|-59degreesC|ok
P0DIMMTemp|27degreesC|ok
P1DIMMTemp|27degreesC|ok
HSC0InputPower|60Watts|ok
HSC0InputVolt|12.46Volts|ok
CPU0Tjmax|90degreesC|ok
......
Run Code Online (Sandbox Code Playgroud)
现在我想循环遍历这些数据并在函数中创建一个列表或元组并返回每一行但是使用字符串的第一部分命名该元组:
CPUTjmax = ('90degreesC','ok')
Run Code Online (Sandbox Code Playgroud)
现在我通过|做了一些分裂字符串 但当我试图string[0] = (string[1],string[2])用来定义元组时撞墙.
请问有人给我一个指针吗?
里克
我有这样一个文件:
1000_Tv178.tif,34.88552709
1000_Tv178.tif,
1000_Tv178.tif,34.66987165
1000_Tv178.tif,
1001_Tv180.tif,65.51335742
1001_Tv180.tif,
1002_Tv184.tif,33.83784863
1002_Tv184.tif,
1002_Tv184.tif,22.82542442
1002_Tv184.tif,
Run Code Online (Sandbox Code Playgroud)
如何使用简单的Bash命令将其设为这样?:
1000_Tv178.tif,34.88552709
1000_Tv178.tif,34.66987165
1001_Tv180.tif,65.51335742
1002_Tv184.tif,33.83784863
1002_Tv184.tif,22.82542442
Run Code Online (Sandbox Code Playgroud)
换句话说,我需要删除所有其他行,从第二行开始.
谢谢!