我有一个巨大的哈希文件,显示如下:
username:values:values:password hash:::
username:values:values:password hash:::
username:values:values:password hash:::
依旧......
我需要将这种格式的哈希值用于用户名并将它们放入另一个文件中。
用户名需要以字母开头,后跟6位数。
Examples of usernames i want to put into a new file:
Y783071:SDF87DSFQ1:DSF98D3EF:DSF98SDF98
G678876:SD8F7SD8F7:DF98SDF89:SDF98S
J110998:SDF98FJ98W:9J493H0L8:3498RJHT
但是这个哈希文件中有很多其他用户名我不希望看起来像这样: SDFSNPOSAB:9786:sdfb787 EMEU6798:JHB98fds:
等等
最好用bash或C ++。
有人告诉我应该使用grep或sed
我在ubuntu linux机器上。
答案 0 :(得分:1)
不确定这是否是您要找的
cat input
username:a dfasdfasdf
username:b
username:c dasfjkl;asd
username:a dfasdfl;j
代码:
awk -F " " '{print > "files_"$1}' input
-> Space separated file is read, redirect to new files based on the first column
<强>输出强>
ls
files_username:a
files_username:b
files_username:c
内容强>
more files_*
::::::::::::::
files_username:a
::::::::::::::
username:a dfasdfasdf
username:a dfasdfl;j
::::::::::::::
files_username:b
::::::::::::::
username:b
::::::::::::::
files_username:c
::::::::::::::
username:c dasfjkl;asd
答案 1 :(得分:1)
您可以使用以下sed命令:
sed -n '/^[a-zA-Z]\{1\}[0-9]\{6\}:/p' hash_file > output_file
此sed命令查找以1个字母开头([a-zA-Z]\{1\}
)后跟6个数字([0-9]\{6\}
)后跟:
的行。