awk等で、あるフィールド以降のすべてのフィールドを表示させたい


あるDIRに複数の「空白を含むファイル名（PDF名など）」が存在し、日付やWORDを含むファイル名で検索し、のちに結果を表示したいときがあります。

[code]

    ls -la
    -rw-rw-rw-  1 admin administrator  11794593  9月  3  2014 Cambridge University Press Programming in Mathematica An Introduction 2013 .pdf
    
[/code]

このとき、空白がないなら `ls -la` などの後ファイル名のフィールド番号を指定すれば良いのはわかります。

[code]

    ls -la | awk '/pdf/{print $9}'
    Cambridge
    
[/code]

しかし、空白がいくつかありますと、希望通りの結果が得られず難儀しております。  
アドバイスよろしくお願いします。



[code]

    LANG=C ls -laN $1 | awk '{
        re="^([^ ]+ +){7}[^ ]+ "
        match($0, re)
        num = RLENGTH + 1
        print substr($0, num)
    }'
    
[/code]

awkのスクリプトの中で、lsの結果であるファイルを切り出したいとき、ファイル名に空白が含まれるとやっかいですね。  
awkのデフォルトのデリミタは空白ですが、連続するデリミタは1個と解釈されるため、いったんフィールドに分解してしまうと空白の数を復元できません。

lsの結果を使いたいとき、ファイル名までのフィールドを削除するしか解決の方法を思いつきませんでした。  
こちらの環境では、51文字目からファイル名でしたので$0から先頭の50文字を削除しています。  
Nオプションを付けずにlsを実行すると、空白を含むファイルの前後に引用符が付加されますので、Nオプションで抑止しています。

確認に使用したlsのバージョンです。  
ls (GNU coreutils) 8.28

* * *

追記  
状況によって「ファイル名の開始位置が変わる」とのご指摘をいただきましたのでコードを修正しました。  
空白で始まるファイル名にも対応しました。

