これは私が使用しているファイルの出力です。
aaaaa
bbbbb
ccccc
ddddd
eeeee
fffff
ggggg
hhhhh
iiiii
jjjjj
私は以下を使用すると、tail -n 5 filename
次のように表示されることを知っています。
fffff
ggggg
hhhhh
iiiii
jjjjj
head
このようにコマンドを使用してどのように同じように表示できますか?精密ワイヤーか。
head -n 10 filename | tail -n 5 filename
うまくいきますが、私が探しているものとは重複しています。
ベストアンサー1
注文
head -n 10 filename | tail -n 5 filename
無意味。出力は から直接読み取ったので読み取れhead
ません。したがって、結果は今の結果とまったく同じです。tail
tail
filename
tail -n 5 filename
このhead
ユーティリティはトップファイルの内容(またはGNUの場合は、ファイルのhead
末尾の特定の行数を除くファイルのすべての行)。head
ファイルデータの尾を取得するためにこのユーティリティを使用したくありません。これを行うには、tail
示されているとおりに使用します。
他のソリューションは基本ソリューションよりも複雑ですtail -n 5
。
たとえば、
tac filename | head -n 5 | tac
GNU coreutilsがすでにインストールされているとしますtac
。どちらもリモートPOSIX準拠のシェル環境を持つすべてのシステムにインストールされ、head
LinuxシステムとGNU coreutilsがインストールされている他のシステムでのみ見つけることができます。tail
tac
あるいは、単に使用したくない場合は、自分で実装することもできますtail
。awk
tail
$ awk -vn=5 '{ lines[i++ % n] = $0 } END { for (j = 0; j < n; ++j) print lines[(i+j)%n] }' filename
fffff
ggggg
hhhhh
iiiii
jjjjj