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

标签 python bash text awk

我有一个包含多个 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

关于python - 如何从键值对列表中删除值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11537642/

相关文章:

python - 根据不同的列值将值分配给数据框中的列

python - 条件匹配后从另一个数据框中的匹配索引复制值

linux - 打印环境变量以重用

java Swing : Is it possible change color of a specific string variable?

python - 在python中划分一个字符串

python - 后端 CPU 的预期对象,但参数 #2 得到后端 CUDA 'source'

c - 需要在 shell 脚本中获取 C 程序名称

python - 在 Bash 脚本中获取 Python 脚本的退出代码

c# - 这是制作 'animated' 文本的最简单方法吗?

browser - 容易自动换行的字符