我有一个这样的文件,其中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
答案 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
会将文件拆分为键和值文件。