从分隔文件中提取第一个字段

问题描述 投票:2回答:2

我有一个像这样的文件,其中key[x]是一个数字,它可以是任何数字后跟一些值,它们也可以是一个数字。在我的文件中,我有很多条目。

key1:value1,value2
key2:value1,value2,value3,value4
key3:value1,value2,value3

我想创建一个新文件,其中所有键将以新行分隔。这可能吗?我知道我们可以在这里使用sed但是在我的情况下阅读文件时最好的方法是什么。

echo "string1:string2:string3:string4:string5" | sed s/:/\\n/g
bash unix sed split
2个回答
2
投票

使用cut提取第一个字段:

cut -f1 -d: file > file.keys

或者您可以使用sed删除以:开头的所有字符:

sed 's/:.*//' file > file.keys

对于像这样的简单提取,cut要快得多,特别是对于大文件。


2
投票

缺少awk解决方案......

$ awk -F: '{print $1 > "keys"; print $2 > "values"}' file

将文件拆分为键和值文件。

© www.soinside.com 2019 - 2024. All rights reserved.