我有一个很多mda5散列的文本文件。我只需要得到我的文件的散列作为输出。我试过cat mda5hashes.txt | grep manual12.pdf
,但我有这个PROMT:如何使用'cat'命令获取文件的特定行?
manual12 917NJvfNj6uY237fjzmso38djr7s
我怎么能得到的只有哈希作为提示,在位于行的数量?
我有一个很多mda5散列的文本文件。我只需要得到我的文件的散列作为输出。我试过cat mda5hashes.txt | grep manual12.pdf
,但我有这个PROMT:如何使用'cat'命令获取文件的特定行?
manual12 917NJvfNj6uY237fjzmso38djr7s
我怎么能得到的只有哈希作为提示,在位于行的数量?
awk中能做到这一点很简单 假设manual12
occures在行
awk '/^manual12/{print NR,$2}' mda5hashes.txt
的开头会给输出
1 917NJvfNj6uY237fjzmso38djr7s
它能做什么?
AWK使用格式pattern{action}
即当行的图案相匹配,则执行该动作。
这里动作是打印第二$2
柱通过(默认)空间分隔的
当图案在印刷散列部的线相匹配manual12
grep -n
将打印行号与匹配。您可以使用sed 's/:/ /;s/\s\s*/ /g'
将grep生成的第一个冒号和所有其他空格转换为单个空格。然后你要在第一和第三部分,它可以与cut -d ' ' -f 2 --complement
链接这些都在一起来实现,你会得到这样的:
cat mda5hashes.txt | grep -n manual12 | sed 's/:/ /;s/\s\s*/ /g' | cut -d ' ' -f 2 --complement
我敢肯定有人可以取代的sed +切虽然,与perl或awk单行相结合。
** awk'/ manual12/{prin t $ 2}'mda5hashes.txt **说明:搜索包含'manual12'的行,然后打印该行(记录)的第二个字段。 – 2016-03-24 03:26:19
** awk'/ manual12/{print NR,$ 2}'mda5hashes.txt **说明:搜索包含'manual12'的行,然后打印该行(记录)的行号和第二个字段。 – 2016-03-24 03:32:32
这看起来行
cat -n | grep manual | awk '{$2=""}1'
或
nl | grep manual | awk '{$2=""}1'
OP也想要行号,但我不知道awk是否足够。 – iobender 2014-10-07 05:00:57
甜!如果我有时间,我应该学习awk,你的解决方案比我的更好。 – iobender 2014-10-07 05:16:12