cat
の内容の前に各ファイル名を印刷する方法が見つかりません。ここでは、私がやろうとしているものです:私はそれらのファイルからテキストだけを得たが、私は実際にはファイル名と一緒にテキストをしたい最後のコマンドでファイル名がcatであるすべてのファイルの内容を表示する
[email protected]:~/Perl/t$ ls
1.txt 2.txt 3.txt
[email protected]:~/Perl/t$ echo " I am " >> 1.txt
[email protected]:~/Perl/t$ echo " trying " >> 2.txt
[email protected]:~/Perl/t$ echo " to do this " >> 3.txt
[email protected]:~/Perl/t$ cat *.*
I am
trying
to do this
[email protected]:~/Perl/t$
。この
Filename:1.txt
<Data in the file>
Filename:2.txt
<Data in that file>
Filename:3.txt
<Data in that file >
これは非常に簡単に見えます。私はあなたが言及した理由を知っているかもしれません - テールコマンドの1後。それらがなければ同じ出力が得られるからです。何か隠された理由はありますか? http://fastebin.com/1WgHAUZq –
少なくとも 'tail(GNU coreutils)8.13'では' tail -n 1 - * .txt'が 'tail -n 1'の最後の行だけを出力するので、' tail -n +1 - * .txt'にする必要があります。各ファイル。また、 '--'は' -'で始まるファイル名のオプションとして解釈を防止します –
または 'grep^*'はファイル名を各出力行の接頭辞として出力します。 ' - * .txt'の代わりに – tripleee