2016-03-21 11 views
2

ich ein awk-Skript schreibe, die wie diese im Inneren aussieht:Awk Verwenden von Dateien zu finden in .c endet

BEGIN{print "Name\t Size\t\t Access"} 
{if($10~/[1-9].[c]) printf "%-10s %-10s %-5s\n", $10, $6, $1} 

Dieser versucht, Dateien in .c enden zu finden, sondern Dateien, die es gibt mir die .c haben innerhalb des Namens. Meine Ausgabe sieht so aus:

lab1.cpp 
Lab2.cpp 
prog1.c 
prog2.c 
prog3.c.txt 

Ich muss den awk Befehl verwenden, um diese Dateien zu finden.

prog1.c 
prog2.c 
+1

Ich gehe davon aus, dass Sie über 'awk lernen wollen ', weil es viel mehr Möglichkeiten gibt, nach bestimmten Dateien zu suchen. Schauen Sie sich zum Beispiel 'find' an. – chw21

Antwort

1

Verwenden Ende Anker in Ihrem regex und Ihre awk verkürzen durch if und bedingte Blöcke zu entfernen:: Wie kann ich es beheben dies, dieses erhalten

BEGIN{print "Name\t Size\t\t Access"} 
$10 ~ /[1-9]\.c$/ { printf "%-10s %-10s %-5s\n", $10, $6, $1} 
+1

Danke für die Hilfe! –

Verwandte Themen