我有一個很多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