2013-12-09 28 views
5

我想創建一個非常簡單的bash腳本,它將列出特定目錄中每個文件的前幾行。該目錄應該由參數指定。 我認爲應該使用Grep命令,但我真的不知道如何。列出目錄中每個文件的前幾行

我現有的腳本似乎根本不起作用,所以把它放在這裏是沒有用的。

+1

嘗試:'head -n 5 *' – pfnuesel

回答

0
for file in dir/*; do 
    echo "-- $file --" 
    head "$file" 
    echo 
done 
7

使用head命令:

head -3 /path/to/dir/* 
0

因爲bash所做的文件名擴展(通配符)在默認情況下,你可以讓你的shell擴展輸入,讓頭部做休息:

head * 

*通配符擴展到工作目錄中的所有文件名。在zsh上,你可以很好地看到這一點,當你按下tab鍵時,它會自動完成你的命令行。

您可以使用-n參數改變行數。

如果你想遞歸地做到這一點:如果你想在.txt結尾的文件的前幾行

find . \! -type d -exec head '{}' + 
0

,嘗試

head *.txt 

head --lines=3 *.txt 
3

對於任何使用head*的答案,重定向stderr到/ dev/null,除非你想看到像這樣的錯誤:

head: error reading ‘tmp’: Is a directory