2013-12-09 9 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がデフォルトでファイル名展開(グロブ)を行いますので、あなたは自分のシェルが入力を拡張し、ヘッドが残りをやらせるさせることができます:

head * 

*ワイルドカードは、作業ディレクトリ内のすべてのファイル名に展開されます。 zshでは、タブを押したときにコマンドラインを自動完成すると、これをうまく見ることができます。

-n引数を使用して行数をheadに変更できます。あなたは再帰的にこれをしたい場合は

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

をあなたは.txtで終わるすべてのファイルの最初の数行をしたい場合は、のために

head *.txt 

または

head --lines=3 *.txt 
3

を試してみてください任意の答えhead*を使用して、リダイレクト次のようなエラーが表示されないようにするには、stderrを/ dev/nullに設定してください。

head: error reading ‘tmp’: Is a directory 
関連する問題