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

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

リストを作成し、時間属性に基づいてファイルをソートするとします。

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があることを知っていますが、どのように使用しているのかわからず、彼らができることを知っています。

答え1

sedについて具体的に質問したので、

ls -ltr | sed '$!d'

答え2

あなたが探しているものtail

ls -ltr | tail -n 1

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

tail代わりに使用する利点sedtail、改行文字に達するまでファイルの末尾から始まり、最後にsed達するまでファイル全体を巡回してから最後の改行文字を見つけた後のテキストのみを返す必要があることです。

答え3

awkを使用してください:

ls -ltr | awk 'END { print }'

関連情報