Dies sollte das tun, was Sie wollen awk
:
ls -l | awk '$9~/./; gsub(/^ +/,""); print}'
Hier ist ein etwas anderer Ansatz in perl
:
ls -l | perl -lane 'if ($F[7]=~/./) '
Hinweis: Ich kann Ihnen nur empfehlen, gründlich darüber nachzudenken, was Sie tatsächlich erreichen möchten, da es möglicherweise bessere Möglichkeiten gibt. Wie von @confetti erwähnt, ist das Drucken der Dateinamen einfacher mit ls -1
.
Anmerkung: Wie in den Kommentaren richtig hervorgehoben, ist diese Lösung nicht robust. Ich würde hinzufügen, dass das Parsen von ls
nicht als sicher betrachtet werden kann.
AWK lernen: Da das OP in den Kommentaren erklärt hat, dass diese Frage Teil eines umfassenderen Bestrebens ist, AWK zu beherrschen, habe ich einige Empfehlungen.
- Gehen Sie dieses schöne AWK- Tutorial durch
- Halten Sie dieses Referenzhandbuch immer geöffnet
- Lesen Sie diesen kurzen Artikel über die integrierten Variablen von AWK
- Lesen Sie einige der unzähligen Antworten auf AWK- Fragen zu StackExchange
- Betrachten Sie die Alternativen, zusammengefasst hier