2013-02-03 53 views
2

我想寫一個bash腳本,可以通過並只檢查文件的前N行以匹配特定的字符串。我能夠編寫一個簡單的命令來檢查整個文件,但包含在大於N行的信息可能不準確。檢查字符串的前N行bash文件

這是我目前的執行

find . -exec egrep -H -m 1 -l "\<$month/$day/$year\>" {} \; 

我想用頭功能先修剪的文件,但是這似乎並不奏效。有什麼建議麼?在此先感謝

回答

1

這將顯示文件匹配模式在第一N

find . -type f | xargs egrep -H -m 1 -n "\<$month/$day/$year\>" | awk -F : '$2 <= N { print $1; }' 

egrep搜索在文件中第一次出現,並增加了行號。 awk然後搜索行號小於或等於N(此處插入編號)並打印文件名的所有行。

+0

這對我很有用,除非我不希望它打印出匹配的行。任何快速解決方案。我現在正在搞亂它,但我真的沒有任何運氣。我只想要文件名 – MZimmerman6

+0

我可以使用'cut',但我寧願不可能。只是個人喜好,我覺得切有點馬虎 – MZimmerman6

+0

@ MZimmerman6對不起,我的錯,不好複製。 awk已經處理好了。請參閱固定答案。 –