我想創建一個非常簡單的bash腳本,它將列出特定目錄中每個文件的前幾行。該目錄應該由參數指定。 我認爲應該使用Grep命令,但我真的不知道如何。列出目錄中每個文件的前幾行
我現有的腳本似乎根本不起作用,所以把它放在這裏是沒有用的。
我想創建一個非常簡單的bash腳本,它將列出特定目錄中每個文件的前幾行。該目錄應該由參數指定。 我認爲應該使用Grep命令,但我真的不知道如何。列出目錄中每個文件的前幾行
我現有的腳本似乎根本不起作用,所以把它放在這裏是沒有用的。
for file in dir/*; do
echo "-- $file --"
head "$file"
echo
done
使用head命令:
head -3 /path/to/dir/*
因爲bash所做的文件名擴展(通配符)在默認情況下,你可以讓你的shell擴展輸入,讓頭部做休息:
head *
*通配符擴展到工作目錄中的所有文件名。在zsh上,你可以很好地看到這一點,當你按下tab鍵時,它會自動完成你的命令行。
您可以使用-n參數改變行數。
如果你想遞歸地做到這一點:如果你想在.txt
結尾的文件的前幾行
find . \! -type d -exec head '{}' +
,嘗試
head *.txt
或
head --lines=3 *.txt
對於任何使用head
和*
的答案,重定向stderr到/ dev/null,除非你想看到像這樣的錯誤:
head: error reading ‘tmp’: Is a directory
嘗試:'head -n 5 *' – pfnuesel