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

时间:2018-02-28 20:46:50

标签: bash unix sed split

我有一个这样的文件,其中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

2 个答案:

答案 0 :(得分:2)

使用cut提取第一个字段:

cut -f1 -d: file > file.keys

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

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

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

答案 1 :(得分:2)

缺少

awk解决方案......

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

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