capture specific listing in the ls -l

Hi,

my desired output needs only that has *.pdf

ls -l *.pdf

error: arg list too long

so I have redirected ls -l > file.txt

therefore, I get the following details in the file

-rw-r--r-- 1 devusr devgrp 848015 Aug 11 15:13 0000795769.pdf
-rw-r--r-- 1 devusr devgrp 848492 Aug 11 15:13 0000795775.pdf
-rw-r--r-- 1 devusr devgrp 848531 Aug 11 15:14 0000795781.pdf
-rw-r--r-- 1 devusr devgrp 847842 Aug 11 15:14 0000795783.pdf
-rw-r--r-- 1 devusr devgrp 848552 Aug 11 15:14 0000795791.pdf
-rwxr-xr-x 1 devusr devgrp 88417741 Aug 21 11:42 file1.zip
-rwxr-xr-x 1 devusr devgrp 88421718 Aug 21 11:42 file2.zip
-rwxr-xr-x 1 devusr devgrp 88425125 Aug 21 11:42 file3.zip
-rw-r----- 1 devusr devgrp 1 Aug 20 13:57 samp.txt
drwxrw-rw- 2 devusr devgrp 256 Aug 1 22:02 tmp
drwxrw-rw- 2 devusr devgrp 256 Aug 17 15:44 ecs

Can I get only the lines with *.pdf to a different file

Pls advice!!

grep '\.pdf$' file.txt > pdffiles.txt

Or:

ls -l | grep '\.pdf$' > pdffiles.txt
ls -l *.pdf > "pdffiles.txt"

Thanks for your reply and answer :slight_smile: