リストの最後の行だけを表示する方法は?


12

リストを作成し、一時的な属性でファイルを並べ替えるとします。

ls -ltr

-rwxrwxrwx 1 bla bla 4096 Feb 01 20:10 foo1
-rwxrwxrwx 1 bla bla 4096 Feb 01 20:12 foo2
.
.
.
-rwxrwxrwx 1 bla bla 4096 Mar 05 13:25 foo1000

リストの最後の行だけを取得するには、パイプチェーンのls -ltrの後ろに何を追加すればよいですか?私はsedとawkがあることを知っていますが、それらの使用方法はわかりません。何ができるかしかわかりません。

回答:


25

特にsedについて尋ねたので、

ls -ltr | sed '$!d'

ありがとう、私はいくつかの具体的なセドを学んだことを今少し誇りに思っています。
Abdul Al Hazred

3
また、sed -n '$p'同じことを行いますが、本当にtail -1仕事に適したツールです。
imiric

ありがとう!/ proc / cpuinfoの最後の行を抽出して、先頭のゼロを簡単にトリミングできました(RPi3シリアル番号を簡単に抽出するために使用):sed '$!d s/.*: 0\+//' /proc/cpuinfo
Yaron

11

あなたが探していますtail

ls -ltr | tail -n 1

これにより、ls -ltrの出力の最終行のみが表示されます。後の値を変更することにより、行数を制御でき-nます。-n 1完全に省略すると、10行になります。


完璧で、非常に迅速で役立つ回答
Abdul Al Hazred

tail -1... -nは冗長です。
dhchdhd 2018

@Barry tail -1は非推奨です(POSIX仕様のtail「RATIONALE 」セクション、またはGNU tailsマニュアルの最後の部分を参照してください)。今のところ、この場合でも機能しますが、例では使用しないことをお勧めします。
スティーブンキット2018

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.