- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:sedを使って複数ファイルの先頭行を表示)
sedを使って複数ファイルの先頭行を表示する方法
このQ&Aのポイント
- sedコマンドを使って複数のファイルの先頭行を表示する方法を解説します。
- headコマンドの場合はファイル名と結果が分かれて表示されますが、sedコマンドを使用するとファイルごとに結果が表示されます。
- sedコマンドの-nオプションと行番号指定を組み合わせることで、各ファイルの先頭行を取得することができます。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
awk を使いましょう。 awk 'FNR==1{print FILENAME,$0}' *.txt
その他の回答 (3)
- kumoz
- ベストアンサー率64% (120/185)
回答No.4
sed でファイル名を取得できないと思いますので、No2 の回答のように AWK を使うか、別の言語を使うことになります。。なお、head の出力を sed で加工することはできます。 head -n 1 *.txt | sed 'N;$!N;s/==> \(.*\)<==\n/\1/;s/\n//' Perl では、次のようなコマンドラインになります。 perl -ne 'if ($. == 1) {print "$ARGV $_"; close ARGV;}' *.txt
質問者
お礼
ありがとうございます。 他のコマンドとの組み合わせか、他の方が書いていただいた通り awk、perlにするかですね。
- kumoz
- ベストアンサー率64% (120/185)
回答No.3
GNU sed だけかも知れませんが、ファイルを別々に処理する -s オプションがあります。 sed -sn '1p' *.txt
質問者
お礼
ありがとうございます。 -s があるなんて知りませんでした。 manやsed --help で調べていない自分がいけないのかも。 -s でやるとファイル名がでないんですね。
- memphis
- ベストアンサー率40% (975/2395)
回答No.1
headコマンドでできますよ。 head -q -n 1 *.txt
質問者
お礼
ありがとうございます。 -q があるなんて知りませんでした。 manで調べていない自分がいけないのかも。 -q でやるとファイル名がでないんですね。
お礼
ありがとうございます。 awkのことを忘れていました。