Skip to main content
 首页 » 编程设计

python之如何从键值对列表中删除值

2025年05月04日10youxin

我有一个包含多个 KV 对的文件。

输入:

$ cat input.txt 
k1:v1 k2:v2 k3:v3 
... 

我只对值感兴趣。键(名称)只是为了记住每个值的含义。本质上,我希望剪切键,以便我可以绘制值列。

输出:

$ ... 
v1 v2 v3 

他们的单行 bash 命令可以帮助我实现这一目标吗?

更新


这就是我目前的做法(看起来很丑)

>> cat input.txt | python -c "import sys; \ 
   lines = sys.stdin.readlines(); \ 
   values = [[i.split(':')[1] for i in item] for item in \ 
   [line.split() for line in lines]]; \ 
   import os; [os.system('echo %s'%v) for v in \ 
   ['\t'.join(value) for value in values]]" > output.txt 

请您参考如下方法:

这适合你吗?

sed -r 's/\w+://g' yourfile 

测试:

kent$  echo "k1:v1 k2:v2 k3:v3"|sed -r 's/\w+://g'                                     
v1 v2 v3 

更新 好吧,如果您的 key 包含“-”等:请参见下文

kent$  echo "k1#-$%-^=:v1 k2:v2 k3:v3"|sed -r 's/[^ ]+://g'   
v1 v2 v3