因此,我有大約60k-70k的vCard文件,並且希望檢查(或者在這一點上,計數)哪個vCards包含郵件地址(EMAIL; INTERNET: [email protected])awk:遍歷大量文件列表
我試圖將find的輸出傳遞給awk,但我只是讓awk與文件列表一起工作,而不是與每個文件內容一起使用。我怎樣才能讓awk這樣做呢?我嘗試了幾種find,xargs和awk的組合,但我沒有得到它的正常工作。
感謝您的幫助, Wolle
因此,我有大約60k-70k的vCard文件,並且希望檢查(或者在這一點上,計數)哪個vCards包含郵件地址(EMAIL; INTERNET: [email protected])awk:遍歷大量文件列表
我試圖將find的輸出傳遞給awk,但我只是讓awk與文件列表一起工作,而不是與每個文件內容一起使用。我怎樣才能讓awk這樣做呢?我嘗試了幾種find,xargs和awk的組合,但我沒有得到它的正常工作。
感謝您的幫助, Wolle
我可能會使用grep
這一點。
如果你想從文件中提取不會忽略:
grep -rio "EMAIL;INTERNET:.*@[a-z0-9-]*\.[a-z]*" *
使用cut
,sed
或awk
刪除前導EMAIL;INTERNET:
:
... | cut -d: -f2
... | sed "s/.*://"
... | awk -F: '{print $2}'
如果你想要的名稱包含特定地址的文件:
grep -ril "EMAIL;INTERNET:[email protected]\.com" *
如果grep
不能同時處理很多文件,刪除-r
期權以及find
和xargs
嘗試:
find /start/dir -name "*.vcf" -print0 | xargs -0 -I {} grep -io "..." {}
grep
遞歸可以做到這一點
grep -r 'EMA[email protected]'
要首先讓我們看看你做了什麼?張貼你試過的東西。 – devnull
找到./ -iname「* .vcf」| xargs -i awk'/[email protected]/'{}或 awk'/[email protected]/'$(find ./ -iname「* .vcf」... 和一些超複雜的組合我不能請記住: – WolleTD